(navigation image)
Home American Libraries | Canadian Libraries | Universal Library | Community Texts | Project Gutenberg | Children's Library | Biodiversity Heritage Library | Additional Collections
Search: Advanced Search
Anonymous User (login or join us)
Upload
See other formats

Full text of "Commander Magazine Issue 02"




JAKUAfiVl^aa VOL 1 1SSUE 2 




FIBS 





nEside: 

itefprisE 

iBi/ings of 
iriadman 



Soffiethbrtg neuj on ttie harieon. 




x..^ 




^§9%giWW ^ VIC-PICS..IMPROVE1 




Simplify your printer set-up with 

SMART ASCII $59.95 

At lost! A simple, convenient, low-cost printer interface. 
It's ASCII: connects the VIC or '64 to your favorite parallel 
printer (Epson. Microline. Smith-Corona TP-l, etc.). 
It's SMART: translates unprintable cursor commands and. 
control characters for more readable LISTings. 
Converts user port into parallel port with Centronics protocol, ad- 
dressable as Device 4 or 5, Three print modes: CBM ASCII (all 
CAPS for LISTing): true ASCII (UPPER/bwer case for text); and 
TRANSLATE (prints (CLR). (REDK (RVS), etc.). For any size 
VIC or the *64. Complete with printer cable and instructions. 

UN-WORD PROCESSOR 2... $19.95 

The improved UN-WORD retains the practicality and 
economy of the original. Easy-to-use text entry and screen 
editing. Use with any size VIC {5K to 32K). Supports VIC 
printers. RS-232 printers, and now parallel printers* , too. 
Handy user Menu selects: single- or double-space, form 
feed, print width, number of copies. Supports printer control 
codes. With complete documentation. 

'Parallel printers require an mterface. See SMART ASCII. 

BANNER /HEADLINER $14.95 

Make GIANT banners on your printer. Prints large characters across 
the page or sideways down the paper roll. . .how about a lOft. 
long "Welcome Home!''. ViC or RS-232 printers. 

VtC-2D is a trademark of Commodore Business Machines 



IMPROVED!.. $19. 95 

Now with hl-tez draw Toutine for your joystick PLUS hi- 
rez dump to VIC printer. Features 19 fascinating hi-rez 
digitized pictures. Capture i;our creativity, or ours, on 
paper. Amazing fun! 

GRAFIX DESIGNER $14.95 

Design i^'our own graphic characters! Recall, erase, edit. copy, 
rotate . . . save to tape or disk for use in your own programs. Simple 
to use. Includes examples and demo routines. 

GRAFIX MENAGERIE $14.95 

Three-program set shows off VIC graphics potential for art. science, 
music, business. . .learn by seeing and doing. Contains BASIC 
]>iotting routines you may extract and use. 

TERMINAL-40 $29.95 

Join the world of telecommunications in style: 
40-character lines and smooth scrolling text for easy 
reading! All software — no expensive hardware to buy. 4K 
(or larger) Receive Buffer with optional dump to VIC 
printer. Function key access to frequently-used modes. Fully 
programmable Baud. Duplex. Parity. Wordsize. Stopbit, and 
Linefeed; supports control characters- Requires VIC-20. 8K (or 
largcrl memory expansion and suitable modem. With 24 p, manual 
and Bulletin Board directory. 



ORDER DESK 

Open 9 am - 4 pnn 

(816) 254-9600 

VJSA/MastetcArd add 3% 
COD add $3,50 







r'^ 


MIDWEST 

MICRO associaUs 


PO BOX 614a, KANSAS CITY, MO 64110 



MAIL ORDER: Add $1.25 shippmg 

and handling, Send money order for fastest 
di?liver\-, VISA/ Mastercard s«?nd *dnd exp. 
date (3% added). Missouri residents include 
4.6% saks tax. Foreign orders payable U-S.$. 
U,S, Bank ONLY; add $5 shipping/ handling. 

All programs on 

high quality digital 

cassette tape. 

Write for free brochure. 
Dealer inquiries invited. 



At>^*'^ff SOFTWARE FOR THE NEW 

;^^;i^^XOMMODORE 64s^ 

'64 TERMINAL ($29,95). Same tmprt^sslve features as 
TERMINAL'40: smooth-scrolling, 40-character lines, VIC 
printer dump. etc. GIANT 24K Receive Buffer. No memory 
expansion required: requires 64 and modem. 

'64 GRAFIX SAMPLER ($19.95). luiuige n the 

graphics splendor of the '64. Interact with demon of techniques 
such as plotting of points, lines and 3-D objects, drawing in 
the hirez mode (joystick control); animating sprites; plus 
assorted graphics displays. Routines may be extracted for use in 
your own programs. 

*64 PANORAMA ($19.95). Explore picture graphics 
on the amai^snc; '64! Nineteen fascinating digitized pictures PLUS 
hi-rez draw routine for your joystick AND hi-rez dump to 
VIC printer Capture our pics or pour creativity on paper. 

'64 BANNER /HEADLINER ($19.95). Make 

GIANT banners and posters with your '64 and printer. Sup- 
ports VIC printers. RS-232 printers {requires interface), and 
parallel printers (requires Smart Ascii). 




Table of Contenis 



STAFF 



Publisher 

THOMAS L. ROSENBAUM 

Editor 

ALICIA A, LINDEN 

Assistant Editor 
TERILYN M. FLOYD 

Assistant Editor 
LINDA L. LINDEN 

Typesetting 
GRANGE PRINTING 

Consultant 
EDWIN SUND 

Printed By 
GRANGE PRINTING 

COMMANDER is published monthly by: 

MICRO SYSTEMS SPECIALTIES, P.O. Box 98827, 

Tacoma, Washington 98498 



Subscription Rates 

U.S. 

Canadian, Mexican 

Surface Rates 

Air Mail 



Per Year 
$22.00 
$26.00 
$37.00 
$54.00 



For back issues, subscriptions, change of address or 

other information, write to: 

COMMANDER 

P.O. Box 98827 

Tacoma, Washington 98498 

(206) 565-6816 



23 
30 
32 

41 

52 

12 
15 
19 

36 
40 
50 



Copyright© 1982 by MICRO SYSTEMS SPECIALTIES 
All Rights Reserved 



VIC-20 

ENTERPRISE 
By Tim Parker 

RAVINGS OF A MADMAN 
By Tim Parker 

GOBBLE 

By Tim Parker 

64 

PEEK & POKE 

By George R. Gaukel 

PET/CBM 

REVIEW: A ROM FOR THE PET "COMMANDER" 
By Edwin Sund 

SPECIAL FEATURES 

SINGLE DRIVE COPY 
By Howard Rotenberg 

RADIX-50: PACK & UNPACK 
By Howard Rotenberg 

COMAL: A CLOSER LOOK 
By Howard Rotenberg 

ASSEMBLY LANGUAGE PROGRAMMING ON THE VIC- 
PART II 
By Eric Giguere 

USCD PASCAL FOR THE COMMODORE 8096 
By Neil Omvedt 

COMMODORE CHARACTER SET vs ASCII 
By Edwin Sund 



DEPARTMENTS 



4 Letters to Editor 

5 Editorial 

6 News Releases 
9 New Products 

58 Game Contest 

54 Dealers 

60 Advertisers Index 



Commander January 1983 1 



FORTHEVtC-20^ 



THE COMPUTER REVOLUTION IS COMING! 
BE READY WITH A MASTERY OF THE COMPUTER KEYBOARD! 

IN THE AGE OF THE COMPUTER, EVERYONE FROM THE SCHOOL CHILD TO THE CHAIRMAN OF THE BOARD SHOULD 
BE AT HOME AT THE COMPUTER KEYBOARD. THESE PROGRAMS PROVIDE EVERYTHING YOU NEED TO MASTER THE 
KEYBOARD AND GAIN THE COMPETITIVE EDGE THIS BRINGS IN THE COMPUTER AGE. 

* Rated THE BEST educational program for the ViC-20 by Creative Computing Magazine 

*T7PIiarG TUTOR PLUS WORD INVADERS — $21.95 

(2 programs on one cassette tape for the unexpanded VIC-20) 

Typing Tutor plus Word Invaders makes learning the keyboard easy and fun! Typing Tutor teaches the keyboard in easy 
steps. Word Invaders makes typing practice an entertaining game. Highly praised by customers: "Typing Tutor is great", 
"Fantastic", "Excellent", "High Quality", "A source of great learning and joy for our children." 

Customer comment says it all . . . 

". . . and it was everything you advertised it would be. In three weeks, my 13 year old son, who had never typed before, was 
typing 35 w.p.m. I had improved my typing speed 15 w.p.m. and my husband was able to keep up with his college typing 
class by practicing at home." 



FOR THE COMMODORE 64® 



SPRITE DESIGNER by Dr. Lee T Hill - $16.95 

Save hours of work when designing sprites. Helps you create multiple sprites, copy and alter them to create views from 
different perspectives automatically for 3-D or animated effects. Options include: copy any of the previous sprites, reflec- 
tion, rotation, translation, shearing, reverse image, merge & intersect. Saves sprite data for merge into your program. 

SHIPPING AND HANDLING $1.00 PER ORDER. CALIFORNIA RESIDENTS ADD 6% SALES TAX. 
VISA AND MASTERCARD ORDERS MUST INCLUDE FULL NAME AS SHOWN ON CARD, CARD NUMBER, AND EXPIRATION DATE. 

FREE CATALOG SENT WITH ORDER AND ON REQUEST 



P.O. BOX 9403 Qr^TiiA/Aryc 

SAN RAFAEL, CA 94912 O CJ F I I/I//1 1 < t 



(415)499-0850 



Programmers. Write to our New Program Manager concerning any exceptional VIC-20 or C64 game or other program you have developed. 



Call for Clubs and Newsletters Directory 

To be included in the first edition of the Commander Clubs and 
Newsletters Directory, your club or publication must supply the 
following information: 

1 . name of organization or publication 

2. mailing address 

3. contact person and telephone number 

4. name of newsletter or publication 

5. special interests 

Send your information to Clubs and Newsletters Directory, 
Commander, P.O. Box 98827, Tacoma, Washington 98498. 



Commander - The Monthly Journal for Commodore Computer Users is published monthly by Micro Systems 
Specialties, P.O. Box 98827, Tacoma, WA. 98498. Domestic Subscriptions, 12 issues, $22.00. Second Class 
Postage pending at Tacoma, WA 98404 and additional mailing offices. Postmaster:Send address changes to: 
Commander - The Monthly Journal for Commodore Computer Users, P.O. Box 98827, Tacoma, WA 98498. 

Entire contents copyright ^ 1982 by Micro Systems Specialties. All Rights Reserved. 



2 Commander January 1983 



coShDflTflj SOFTWARE 



GUIDES YOU AND YOUR 
VIC 20" DOWN ROADS OF 
ADVENTURE WITH: 



Maelstrom* 
Escape MCP* 
Gator Chase* 
Astro Command 
Caves of Annod 
Capture the Beast 
Whirlwind Rescue* 
Street Maze 
The Market 
Chivalry 






• 
• 



THROUGH TRAILS OF 
CREATIVITY WITH: 

• Sketch and Paint 





Quality software also available 
for Pet and Commodore 64 computers 



ALONG THE PATH TO 
KNOWLEDGE WITH: 

• Wordspot 

• Math Tutor Series 

• Alphabet Tutor 

• Conversion 

• Gotcha Math 

• English Invaders 

• Math Invaders Series 

ASK FOR COMM*DATA 

COMPUTER HOUSE SOFTWARE 

AT YOUR LOCAL DEALER. 

Or Send for FREE Catalog: 

COMM*DATA COMPUTER HOUSE 

320 Summit Avenue 

Milford, Michigan 48042 

(313) 685-0113 

Dealer Inquiries Welcome. 



VIC 20 is a Registered Trademark of Commodore Business Machines, Inc. 
*High Res Full Machine Code Arcade Style Games. 



Commander January 1983 3 



Letters to the Editor 



Well ... My opinions don't change 
much, but there are a few new things 
available for me to form an opinion 
about so, for what it's worth, here is my 
opinion of several VIC games that we 
have recently acquired and, boy, do 
I have an opinion of advertisers that 
can't deliver on advertised products. 

COMMODORE has recently offered 
"PINBALL SPECTACULAR" as an 
addition to their cartridge list. In my op- 
inion it is the best yet. It utilizes pad- 
dles that operate smoothly, has excel- 
lent color and graphics and really 
great action. The action starts slowly 
enough that even I can keep up with 
it but it soon speeds up to the point 
where I just give up and let the kids 
play. The game combines some of the 
features of "BREAKOUT" with some 
new features to make for a lot of fun, 
and it can be played by two people— 
another improvement over most of the 
rest of the field. 

We tried a couple of adventure 
games from AARDVARK TECHNICAL 
SERVICES. "QUEST" which is the first 
adventure that we've seen for the VIC 
that has graphics. The graphics are 
not great and the game is very difficult 
because there is so much about it that 
is random but it does have graphics. 
The object of the game is to acquire 
enough men and arms to storm the 
castle of the evil ruler and thus win the 
freedom of the kingdom. 

The other AARDVARK game we 
tried was "PYRAMID," and it too is 
very difficult. We had to get some 
clues from a friend that had already 
solved the puzzle. The object of this 
game is to acquire some "treasures" 
and take them to a certain location. 
AARDVARK provides a listing with 
their games, which require memory 
expansion, so it is possible to get a lot 
of information from the listing if you get 

4 Commander January 1983 



really stumped. We also encountered 
a couple of problems with ours, like the 
treasures would not all register in 
"PYRAMID" and some of the informa- 
tion on the screen in "QUEST" flash- 
ed on and off too fast to read. We have 
contacted AARDVARK about these 
problems and they are going to fix 
them. Both games are very difficult but 
fairly enjoyable. They do lack some 
features that Scott Adams enthusiasts 
like, like the save feature in the mid- 
dle of the game so you don't have to 
start over every time. 

My very low, low opinion this time 
goes to advertisers that cannot deliver 
on advertised products. I realize that 
there is a long lead time for most 
magazine ads so a company may not 
have an item that they have advertis- 
ed by the time the magazine is printed. 
I'll accept reasonable delay while 
stock is being replenished but I get 
really incensed when a company 
back-orders an item on me in October, 
and keeps my money, and yet still can- 
not give me a delivery date in 
December. I finally had to call and 
cancel my order for a 16K expansion 
and ask for a refund so I could try to 
find one somewhere else. 

I also got very excited when we 
located a 16K locally and they told us 
they would hold it for us for a couple 
of days until payday. When we went 
in two days later they said they didn't 
have it but would be getting one in in 
a "very few days." The upshot is that 
I still do not have my memory expan- 
sion, nor do I have my refund— such 
is life I suppose, but it would be nice 
if the first company had sent my 
money back after a week or so when 
they found they couldn't deliver. 

If and when I get the 16K expansion 
I am going to try a new game that I 
received from PRICKLY PEAR SOFT- 



WARE called "VIKING." Sounds really 
promising, for one to four players, 
adventure type and best of all, it is on 
DISK. I may have an opinion of it and 
some other things later. 

Fred S. Dart 
Salem, Utah 



Dear Editor, 

I think your new magazine is just 
great— especially for beginners like 
me. I just bought a VIC-20 a couple of 
months ago and need lots of support. 

One application program I have 
been looking for is one to haridle 
geneology. I have seen several for the 
Apple or TRS-80 but nothing for VIC. 
I would even like just a listing to type 
in myself and make improvements on. 
Perhaps some of your other readers 
might have a geneology application 
available. I would also like to see arti- 
cles on how to design and write date 
bases with capabilities of sorting and 
relating items and variables. 
Sincerely, 
Larry S. Kramm 
Antioch, CA 



Dear Editor, 

Just read your new magazine. Love 
it! How about this for a suggestion: A 
regular column called "Wish List" 
where readers could write in what they 
"wish" was available in soft- or firm- 
ware. Maybe suppliers would read it 
and come through. I'll start: I wish 
there was a plug-in key pad (numeric) 

for the 64. 
Keep up the good work! 
Jerry China 
Pasadena, CA 



Editorial 




The 1982 Christmas season has 
brought some profound changes to 
the personal/home computer market. 
The industry has seen constantly in- 
creasing growth through the worst 
economic times since the Great 
Depression and it seemed as it it 
would never end. In December, 
however, Wall Street surprised a lot of 
people by bringing the curtain down 
on many of the home computer 
stocks. The biggest loser, Atari, lost 
25% of it's stock's value in one day 
and suffered a $1 billion dollar equity 
loss in one week. There were many 
contributing factors to this precipitous 
drop but one of the chief causes had 
to be the huge number of dealer order 
cancellations which were triggered by 
the dealers' inability to compete with 
the large volume discounts which the 
manufacturers were granting to the 
mass merchandisers such as Sears. 

Most personal computer manufac- 
turers, including Commodore, have 
been severely hampered by the lack 
of an effective retail distribution net- 



work. To develop such a network from 
the ground up would be very expen- 
sive and take a long time, neither of 
which is acceptable to a company on 
the fast track to success. The easily 
available alternative is to allow small 
retail electronics audio and/or com- 
puter stores to sell the computer. All 
that must be done is to establish a net- 
work of distributors to service the retail 
outlets. This strategy worked well in the 
infancy of the personal computer in- 
dustry, however, as competition grew 
and computer prices and profit 
margins fell, the manufacturers began 
scrambling for alternative methods of 
selling more computers. The obvious 
solution was to turn to the mass mer- 
chandisers such as Sears, Penneys, K- 
Mart, etc. 

The mass merchandisers can cer- 
tainly sell a lot of computers but have 
you ever been able to have a saleman 
at one of these stores answer a 
technical question? Until the mass 
merchers train some personnel to help 
the consumer in this area, their niche 
in the distribution chain is uncertain. 
The mass merchers can discount com- 
puter prices to such an extent that the 
small retail stores cannot buy the 
machine at wholesale prices for less 
than the mass merchers offer it on 
sale. As such, the retail stores cannot 
compete with the mass merchan- 
disers, but they can provide much bet- 
ter customer support. 

Customer support, especially serv- 
ice, is the real key to a successful per- 
sonal computer retail organization. The 
mass merchers are not yet equipped 
to provide timely service and show no 
inclination to do so, but they can offer 
the best price. Commodore's solution 
to this quandry has been to give the 
VIC-20 (because of its price) to the 
mass merchers and the 64 to the retail 



stores because much of the success 
of the 64 will depend upon customer 
service due to its much higher price. 

How well personal computer 
manufacturers manage this dichotomy 
of their sales operation will dictate their 
overall success. Commodore's \/IC-20 
has attained volume sales leadership 
due to a successful advertising cam- 
paign and mass merchandising. The 
future of the 64 is as yet uncertain as 
the VIC-20— the product is well built 
and deserves to be tops. 



"■"'tOiaPU SEIMSEH. 

CARDBOARD 6 
$87.95 

An expansion interface for the VIC-20. 
Allowsexpansion to 40K oraccepts up 
to six games. May be daisy chained for 
more versatility. 

CARDBOARDS 
$39.95 

Economy expansion interface for 
the VIC-20 

CARD"?" CARD/PRINT 

$79.95 

Universal Centronics Parallel Printer 
Interface for the VIC-20 or CBM-64. 
Use an Epson MX-80 or OKIDATA or 
TANDY or just about any other. 

CARDETTE 
$39.95 

Use any standard cassette player/re- 
corder with your VIC-20 or CBM-64 

CARDRITER 

$39.95 

A light pen with six good programs to 
use with your VIC-20 or CBM-64 

Prices subject to change. 
TO ORDER: P.O. BOX 18765 

WICHITA. KS 67218 
(316) 684-4660 
Personal Checks Accepied (Allow 3 Weeks) 
or C O.D. (Add S2) Handling Charges $2.00 



Commander January 1983 5 



News Releases 



I publish this listing solely to promote the VIC 20 industry. By doing this, I hope to improve the level of technical 
support the VIC receives from all you talented people. The list is free of charge to anyone who sends a SASE to 
me. For a charge of $1 .00, I will provide the list on labels. Feel free to make copies and distribute this list to anyone. 
If I am not on your mailing list, please add my name and the names of the following VIC 20 owners: 

Colin F. Thompson 
BASF Systems Corp. 
1307 Colorado Ave. 
Santa Monica, CA 90404 
(213) 451-8781 

KEY / SORT / TEL # NAME STREET ADDRESS CITY / STATE / ZIP 



1 KEY LISTING 

2 KEY LISTING 

3 KEY LISTING 

4 KEY LISTING 

5 KEY LISTING 

6 KEY LISTING 

7 THIS LIST ON LABELS-SEND $1 
d: commo comp ctr 

d; computer barn 

d: computer svc ctr 

d: nat camera 213-829-5465 

d: pccomp 415-527-6044 

d: software spot 213477-7561 

d: comp speciaiti 

dr: ics 801-373-2901 

ds: data eq sup 213-923-9361 

h: alphacom 

h: anvil 213-575-8614 

h: buscosys 413-567-8584 

h; carry comp 

h: central 503-244-5782 

h: comp case 614-868-9464 

h: digital int 503-295-5890 

h:ecx 415-944-9277 

h: glouster 

h: int con 714-641-0181 

h: parsec res 

h: precision 801487-6266 

h: ram/rbc 

h: rvr sys 

h: slagh systems (send SASE) 

h: street elect 

h: sunshine 

h: torrey 213-247-6486 

hm: micro-sys 214484-7836 

hs: cardco 31&685-9536 

hs: comp mkt 609-795-9480 

hs: comp soft 617-961-5700 

hs: comp works 602-249-0611 

hs: data 20 714-770-2366 

hs: elcomp 714-623-8314 

hs: meta 503-232-1712 

hs: micro world 303-93&4487 

6 Commander January 1983 



d: = RETAIL DEALERS 

h: = HARDWARE MANUFACTURERS 

p: = PERIODICALS & NEWSLETTERS 

m: = MAIL ORDER HOUSES 

s: = SOFTWARE WRITERS 

dr: = WHOLESALE DISTRIBUTOR 

To: Colin F. Thompson 

Commodore Computer Center 

Computer Barn 

Computer Service Center 

National Camera & Audio 

P.C. Computers 

The Software Spot 

Computer Specialties 

ICS Micro Wholesale 

Data Equipment Supplies 

Alphacom 

Anvil Cases 

Business Comp. Sys. of New England 

Carry Comp 

Central Point Software 

Computer Case Company 

Digital Interface Systems 

EXC Computer Co. 

Glouster Computer Bus Co. 

Integrated Controls 

Parsec Research 

Precision Technology 

RAM/RBC Systems 

RVR Systems 

Slagh System Services 

Street Electronics Corp. 

Sunshine Peripherals 

Torrey Engberg Smith Co. 

Micro-Systems Development 

Cardco 

Computer Marketing Services 

Computer Software Associates 

Computer Works 

Data 20 Corp. 

Elcomp Publishing 

Metaresearch, Inc. 

Micro World Electronix 



1307 Colorado Avenue 

930 Town & Country Village 

319 Main Street, #2 

1115 Third Street 

3223 Wilshire Blvd. 

10166 San Pablo Ave. 

10977 Santa Monica Blvd. 

1253 Broadway 

Box 1243 

8315 Firestone Blvd. 

2323 South Bascom 

4128 Temple City Blvd. 

Box 2285 

24687 Aric Way 

Box 19730, #203 

5650 Indian Mound Court 

Box 8715 

2678 North Main Street 

6 Brooks Road 

124(>-L, Logan Avenue 

Drawer 1766-P 

2970 South Richard Street 

Box 351 

Box 265 

Box 53 

1140 Mark Avenue 

1229 East 28th Street 

Box 1075 

11105 Shady Trail, Suite 103 

3135 Bayberry 

300 W. Marlton Pike, Suite 26 

50 Teed Drive 

2028 West Camelback 

20311 Moulton Parkway, Suite BIO 

53 Red Rock Lane 

1 100 SE Woodward 

6340 W. Mississippi Avenue 



Santa Monica, CA 98404 
San Jose, CA 95128 
Salinas, CA 93901 
San Rafael, CA 94901 
Santa Monica, CA 90049 
El Cerrito, CA 94530 
Los Angeles, CA 90025 
El Cajon, CA 92021 
Provo, UT 84603 
Downey, CA 90241 
Campbell, CA 95008 
Rosemead, CA 91770 
Springfield, MA 01101 
Elkhart, IN 46517 
Portland, OR 97207 
Columbus, OH 43213 
Portland, OR 97207 
Walnut Creek, CA 94526 
Glouster, MA 01930 
Costa Mesa, CA 92626 
Fremont, CA 94538 
Salt Lake City, UT 84115 
Maiden, MA 02148 
Dewitt, NY 13214 
Dearborn, Ml 48121 
Carpinteria,CA 93013 
Brooklyn, NY 11210 
Glendale,CA 91209 
Dallas, TX 75229 
Wichita, KS 67226 
Cherry Hill, NJ 08002 
Randloph, MA 02368 
Phoenix, AZ 85015 
Luguna Hills, CA 92652 
Pomona, CA 91766 
Portland, OR 97202 
Lakewood, CO 80226 



KEY / SORT / 



TEL# 



NAME 



STREET ADDRESS 



CITY / STATE / ZIP 



hs; oem inc 

m; aard (cat. $1) 

m: ab 

m: alleg 

m: avs 

m: cmart 

m: comp exp 

m: comp out 

m: comp spec 

m; compu sense 

m: computer mail 

m: comstar 

m: discount 

m: eav software 

m: ektype 

m: embassy 

m: jmc 

m: little wizard 

m: lyco 

m: merlin 

m: micro-ware 

m: micrograms 

m: mooseware 

m: mtg 

m: neeco 

m: Olympic 

m: optomam 

m: price 

m: prickly 

m; protecto 

m: queue 

m: rde 

m: sjb 

m: sunrise 

m; tis 

m: world elec 

p: byte house 

p: commander 

p: commodore 

p: creative comp 

p: foxfire 

p: midnite 

p: prog inst 

p: strictly comm 

p: vickie-VIC20, 64, Max 

ps: toronto puc 

s: abacus 

s: academy 

s: amer peri 

s; automated 

s: briley 

s: broderbund 

s: code works 

s: comm data 

s: computemfiat 

s: creative 

s: dtc 

s: earthwarel 

s: french silk 

s: harii soft 

s: hes 

s: hypertech 

s: interesting 

s:k8 

s: magic 



305465-9363 O.E.M. Inc. 
313^9^110 Aardvark-80 
21 5-822-7727 AB Computers 

Allegiance Enterprises 
80(>638-1688 AVS 
404^981-5939 C Mart 
313-528-1544 Computer Express 
800^34-6766 Computer Outlet 

Computer Specialties 
31 6684-4668 Compu Sense 

Computer Mail Order 
805-96&4668 Comstar 
414-231-1696 Discount Software House 

EAV Software 
415489-1532 Ektype Office Systems 

Embassy Computer Products 

JMC 
414-273-5468 Little Wizard Distributing 
800-233^760 Lyco Computer 
213-31&0945 Meriin Enterprises 
201 •838-9027 Micro-Ware Distributors 
815-965-2464 Micrograms 

Mooseware, Inc. 
80O-34SO854 MTG Technical Sales 
617449-1760 Neeco 
800421-8045 Olympic Sales 
91&621-1090 Optomam Consumer Products 
80O-343-1078 P.R.l.C.E. 
602-886-1 505 Prickly-Pear Software 
31 2-382-5244 Protecto Enterprizes 
80O-232-2224 Queue Cat. #11 

RDE Services, Games Dept. 

SJB Distributors 

Sunrise Electronics 

Total Infomfiation Services 

World Electronics 

The Byte House 

Commander 

Commodore-Microcomp. Magazine 

Creative Computing Catalog 

Foxfire Systems, Inc. 

Midnite Software Gazette 

Programmer's Institute 

Strictly Commodore 

VICKIE, John Rosengarten 

Toronto PET Users Club 

Abacus Software 

Acadenry Software 

American Peripherals 

Automated Simulations 

Briley 

Broderbund Software 

The Code Works 

Comm Data Computer House 

Computermat 

Creative Software 

DTC Software 

Earthware 

French & Silk Smoothware 

HarIi Software 

Human Engineered Software 

Hypertech 
213-328-9422 Interesting Software 

KB Software 

Magic Carpet 



VIC-NIC-NEWS 
800426-1830 
215687-9750 

713473^723 
217-864-5320 
919489-2198 



616-241-5510 



415456-6424 
805-683-1585 
31S6850113 
602-855-3357 
415-9048-9595 



2729 So. US #1, Suite 12 

2352 South Commerce 

252 Bethlehem Pike 

868-96th Avenue NE 

7566 Main Street 

Box 77286 

Box 569 

1095 East Twain 

1253 Broadway 

812 South Lightner 

EAST = (800) 233-8950 

Box 1730 

Box 93 

17 Marble Avenue 

1655 Whipple Road 

Box 88 

1025 Industrial Drive 

1211 Lambeth Road, Suite 4 

Box 10 

Box 2876 

Box 113 

Box 2146 

Box 17868 

281 Needham Street 

679 Highland Avenue 

216 South Oxford Avenue 

Box 1038 

67 Teed Drive 

9822 East Stella Road 

Box 550 

5 Chapel Hill Drive 

3580 Warringham 

10520 Piano Road, Suite 206 

7057 Lompoc Court 

Box 921 

177-27th Street 

Box 981 

PO Box 98827 

487 Devon Park Drive 

39 East Hanover Avenue, Dept. HAlX 

3811 Newton 

635 Maple 

Box 3191 

47 Coachwood Place NW 

3822 North Bell Avenue 

381 Laurence Avenue West 

Box 7211 

60x9403 

122 Bangor Street 

Box 4247 

1938 Fourth Street 

Box 550 

PO Box 325 

Box 1664 

201 San Antonio Circle #270 

Box 916 

Box 30039 

Box 207 

1740 Garden Briar Court 

71 Park Lane 

1820 NE 143rd Street, Penthouse 7 

21101 S. Harvard Blvd. 

Box248C 

Box 35115 



Fort Pierce, FL 33450 
Walled Lake, Ml 48088 
Colmar, PA 18915 
Blaine, MN 55434 
Sykesville.MD 21784 
Atlanta, GA 30357 
Troy, Ml 48099 
Las Vegas, NV 89109 
El Cajon, CA 92021 
Wichata,KS 67218 
WEST = (800) 64M311 
Goleta,CA 93116 
Winnebago, WL54985 
PleasanMlle, NY 10570 
Hayward, CA 94544 
Little Neck, NY 11363 
Bensonville.lL 60106-1297 
Waukesha, Wl 53186 
Cogan Station, PA 17728 
Torrance, CA 90509 
Pompton Plains, NJ 07444 
Loves Park, IL 61130 
Irvine, CA 92713 
Newton, MA 02164 
Needham, MA 02194 
Los Angeles, CA 95667 
Placerville, CA 95667 
Randolph, MA 02368 
Tucson, AZ 85730 
Barrington, IL 60010 
Fairfield, CT 06403 
Waterford, Ml 48095 
Dallas, TX 75238 
Citrus Heights, CA 95610 
Los Alamos, NM 87544 
Brooklyn, NY 11232 
Salem, NH 03079 
Tacoma, WA 98498 
Wayne, PA 19087 
Morris Plains, NJ 07950 
Pasadena, TX 77503 
Mt. Zion, IL 625499 
Chapel Hill, NC 27514 
Calgary, Ata, Canada T3H 1E1 
Chicago, IL 60618 
Toronto, Ontario, CAN M5M 1B9 
Grand Rapids, Ml 94510 
San Rafael, CA 94912 
Lindenhurst, NY 11757 
Mountain View, CA 94040 

San Rafael, CA 94901 

Goleta,CA 93116 

Milford, Ml 48042 

Lake Havasu City, AZ 86403 

Mountain View, CA 94040 

Jansville, Wl 53547 

Eugene, OR 97403 

Cannon Falls, MN 55009 

Thundar Bay RR#2, Ontario, Canada 

Brisbane, CA 94005 

Miami, FL 33181 

Torrance, CA 90501 

Canton, CT 06019 

Phoenix, AZ 85069 

Commander January 1983 7 



KEY / SORT / 


TEL# 


NAME 


STREET ADDRESS 


CITY / STATE / ZIP 


s: microed 


612-926-2292 


Micro-Ed, Inc. 


80x24156 


Minneapolis, MN 55424 


s; microsignal 




Microsignal 


900 Embarcadero Del Mar, Unit A 


Goleta,CA 93117 


s: microspec 


214^7-1333 


MicroSpec Ltd. 


2905 Ports O'Call Court 


Piano, TX 75075 


s: midwest micr 




Midwest Micro Associates 


80x6148 


Kansas City, MO 64110 


s: mis 


408-338-9546 


MIS 


250 Fern Rock Way 


Boulder Creek, CA 95006 


s: mw software 




MW Software 


80X126 


Urbana^lL 61801 


s: nufekop 


503^78-2113 


Nefekop 


80X156 


Shady Cove, OR 97539 


s: on line 




On Line Software 


Sox 169 


S. San Francisco, CA 94080 


s: practical 




Practical Applications of Cal. 


PO Box 255768 


Sacramento, CA 95825 


s: public 


513^98-5638 


Public Dbmain 


5025 South Rangeline Road 


West Milton, OH 45383 


s:qbf 


800-547-5995, ext. 194 


Quick Brown Fox 


548 Broadway, Suite 4F 


New York, NY 10012 


s: qumax 


716-338-2145 


Qumax/GRW Laboratories 


Box 17010 


Rochester, NY 14617 


s: rak elect 




RAK Electronics 


80x1585 


Orange Park, FL 32073 


s: random 


904^7-7201 


Random Access Computers 


80x1453 


Benning, FL 32541 


s: rapid 


413649-3744 


Rapidwriter 


91 Long Hill Road 


Leverett, MA 01054 


s: rar-tech 




RAR-TECH 


80x761 


Rochester, Ml 48063 


s: raymac 


408-338-9448 


RAYMAC Software Group 


495 Band Road 


Boulder Creek, CA 95006 


s: scientivic 




Scientivic Software 


525 Lohnes Drive 


Fairbom, OH 45324 


s: skyies 


415-965-1735 


Skyies Electric Works 


231 E South Whisman Road 


Mountain View, CA 94041 


s: specific 


408-241-0181 


Specific Software 


Box 10516 


San Jose, CA 95157 


s: taylor 


402464-9051 


Taylormade Software 


8053 East Avon Avenue 


Lincoln, NE 68505 


s: telegames 




Telegames 


RR#1, Hampton, 80x152 


Ontario, Canada LOB IJO 


s: thorn-emi 




Thorn-EMI 






s: toti 


415-943-7877 


TOTL Software 


Box 4742 


Walnut Creek, CA 94596 


s; transonic 


507-387-1642 


Transonic Laboratories 


249 Norton St. 


Mankato, MN 56001 


s: tsasa 


609^346^063 


TSASA 


2 Chipley Run 


West Beriin, NJ 08091 


s: tyrant 




Tyrant Software 


80x31569 


Aurora, CO 80041 


s: victory 


215-57&6625 


Victory Software 


2027-A SJ Russell Circle 


Elkins Park, PA 19117 


s: west ne 




Western New England Software 


Box 31 


Wilbraham, MA 01095 


s: wil. robblns 




William Robbins 


80x3745 


San Rafael, CA 94912 


siwunder 


503-899-7549 


Wunderware 


Box 1287 


Jacksonville, OR 97530 


sp: avalon 


301-254-5300 


Avalon Hill Games 


4517 Hartford Road 


Baltimore, MD 21214 



STCP 

Standard Terminal Communications Pacjcage 

•PFO'IOD OOA CP<Di>D2 BELL = 12:30:00 10 14.36 

Don'1 settle (or non-standard Communications Protocol! 
Access Micro Net. Source. Bulletin Boards, Local Main- 
frame, etc. 

k* Complete Package - includes RS232 Inter 
lace Board and software (does not include 
modem) 
• Communicates m Industry Standard ASCII 
• Upload/Download to/from Disk 
• Automatic File Translation 
• Can be conirdlled from keyboard or user sup- 
plied basic or machine language program 

Specify: 3.0 or 4.0 ROMS or 8032 Commodore Computer 
4040 or 8050 or PEDISK II Disk 

Price: $129.95 



ATARI AND PET 
EPROM PROGRAMMER 

Programs 2716 and 2532 
EPROMs. Includes hardware 
and software. PET = $75.00- 
ATARI (includes sophisticated 
machine language monitor) = 
$119.95 




Prowriter Printer - Excellent dot matrix print Parallel ' 
Serial = $600 00 IEEE = $589.00 



$489.00 



VIC RABBIT CARTRIDGE 



"High-Speed 

Cassette 

Load and Save!" 




$39.95 

(includes Cartridge 
and Manual) 



Expansion Connector 



"Don't waste your Life away waiting to LOAD and SAVE 

programs on Cassete Deck." 

Load or Save 8K in approximately 30 seconds! Try 

it — your Un-Rabbitized VIC takes almost 3 minutes. 

It's not only Fast but VERY RELIABLE. 

Almost as fast as VIC Disk Drive! Don't be foolish - 

Why buy the disk when you c&n get the VIC Rabbit 

for much, much less! 

Easy to install -it just plugs in. 

Expansion Connector on rear. 

Works with or without Expansion Menxiry. 

Wjrks with VIC Cassette Dfeck. 

12 Commands provide other neat features. 

Also Available for 2001 , 4001 , and 8032 



TRAP 65 

TRAP 65 is a hardware device that 

plugs into your 6502"s socket. Prevents 

execution of unimptemented opcodes 

and provides capatHlity to extend the 

machines' instruction set. 

ForPET/APPLE/SYM. 

Reduced from $149.95 to $69.95 



DC Hayes Smart Modem = $235 00 
DC Hayes Micro Modem ll = 5289 00 



Raria Disk Drive - 375 
4 Drive Controller - 114 



More than just an Assembler/Editor! 




MAE 



for 

PET 

APPLE 

^ATARI 



It's a 

Professionally 

Designed 

Software 

Development 

System ....^^^ ne^f^ie 

Blast off with the software used on the space 
shuttle project! 

• Ossipntd 10 impnM Proonmrncr PnMluctnnty 

• Sirnlir synttx and commvids - No n««d to return poculiar 
synums and coffvnands when you go from PFT to APPLE 
to ATARI 

• Coresident AssenMer/Ediior - No need to I6») the Edftor then the 
Assentter then the Editor, etc. 

• Abo mdijdes\M)nl Processor. Retocatirto Loader, and mucti 

• OtKiofQ EPnOM Pragrammer , ummplefTwmed oocode circuftry 

• STILL NOT CONVINCED: Send tor free Spec sheei' 



5% INCH SOFT 
SECTORED DISKEHES 

Highest quahtv- We use them on 
our PETs, APPLES, ATARIs, and other 
computers. $22.50/10 or $44.50/20 




EPROMS. 2716 = $6.50.2532 = $12 50 

Over 40 Commodore Programs by Baker (on 4040) = 



$25.00 



3239 Linda Dr 

Winston-Salem. N.C. 27106 
(919)924-2889 (919)748-8446 
Send for free catalog! 



iMosMfCORj } 



8 Commander January 1983 



jr : 



New Products 



VANILLA PILOT 

TAMARACK SOFTWARE has an- 
nounced the release of Vanilla 
Pilot— a plain vanilla version of the 
PILOT computer language at an 
unbelievably low price. The language 
includes a set of powerful additions to 
the resident editor In the computer. It 
is a full-featured Pilot language in- 
cluding TURTLE GRAPHICS. Vanilla 
Pilot will be available for the Com- 
modore 4000, 8000, 9000, and the 
C6mmodore-64. 

The Vanilla Pilot editor is used in 
conjunction with the screen editor of 
the computer. The editor adds a 
number of features which will permit 
easy program entry and debugging. 
It has 19 commands including 
FIND/CHANGE, TRACE and conve- 
nient disk and cassette input/output 
commands. The TFlACE command 
will list the Pilot statement currently be- 
ing executed in a line at the top of the 
screen. The disk LOAD command 
features an append option. The disk 
SAVE command includes a partial 
save. RUN includes an option to load 
a program from disk and begin 
execution. 

A special feature of the interpreter 
section is a full TURTLE GRAPHICS 
package. With this, the user can con- 
trol the turtle's DIRECTION and place 
the pen UP or DOWN. In the 
Commodore-64 version the pen can 
be set to any one of the 1 6 screen col- 
ors available. The turtle can DRAW 
lines and turn to the LEFT or RIGHT. 

Another section of the interpreter 
has a multi-featured screen command. 
With this screen command you can 
perform any of the cursor movements 
or switch between uppercase/ 
graphics and upper/lower case screen 
displays. In addition, you can set line 
spacing to single or double space on 




the screen displays. Or, you can 
reverse the entire screen for dark 
characters on a light background. 

The manual which accompanies 
Vanilla Pilot was written by ex- 
perienced educators and was carefully 
designed for clarity and easy reading. 
It is fully illustrated and contains a 
number of programming examples. 
There also is an appendix with ail of 
the statements and commands dear- 
ly documented so that an experienc- 
ed programmer can immediately 
begin using PILOT. 

Vanilla Pilot will be available from 
your local Commodore computer 
dealer in December, 1 982 with a sug- 
gested retail price $29.95. 

Tamarack Software, Darby, MT 
59829, (406) 821-3924. 

SOFTWARE POLLUTION 
CONTROL 

Electrical pollution drives Micro Pro- 
grams bananas! Power line electrical 
noise, hash and spikes often cause er- 
ratic computer operation. In addition, 
severe spikes from lightning or heavy 



machinery may damage expensive 
hardware. 

Many systems create their own pol- 
lution! Disks and printers often create 
enough electrical interference to dis- 
rupt an entire program. Nearby elec- 
tronic equipment is affected as well. 

Electronic Specialists recently an- 
nounced Magnum Insolator is 
designed to control severe electrical 
pollution. Incorporating heavy duty 
spike/surge suppression, the 
Magnum Isolator features four in- 
dividually quad-Pi filtered AC sockets. 
Equipment interactions are eliminated 
and disruptive/damaging power line 
pollution is controlled. The Magnum 
Isolator will control pollution for an 
1 875 watt load. Each socket can han- 
dle a 1000 watt load. 

The Model ISO-17 Magnum 
Isolator eliminates severe AC power 
line pollution for smooth program 
operation. $181.95. 

ELECTRONIC SPECIALISTS, INC. 
171 South Main Street, P.O. Box 389, 
Natick, Mass. 01760. Phone (617) 
655-1532. 

Commander January 1983 9 



\ ( 



Hayes Microcomputer Products, Inc. 



Norcross, Georgia-Hayes Micro- 
computer Products, Inc. announces 
Smartcom I|tm, communications soft- 
ware for the IBM Personal Computer 
with a Hayes Smartmodem 300 or 
high speed Smartmodem 1 200. 
Smartcom II manages data transfer 
over the telephone lines and brings the 
microcomputer, disk drives, and 
printer into the activity. 

Smartcom II extends remote com- 
puting to a wide range of microcom- 
puter users. To aid the new user, 
Smartcom II is built around a simple 
but comprehensive menu of program- 
options, supported by "Help" informa- 
tion displayed on demand. The Help 
feature provides a quick response to 
questions about parameters, prompts, 
and messages. To satisfy the more 
demanding user, Smartcom II 
transfers program files error-free and 
allows the Smartmodem to be tailored 
for a unique communications 
environment. 

President of Hayes Microcomputer 
Products, Inc., Dennis C. Hayes com- 
mented, "Smartcom II, our second 
software release, continues our com- 
mitment to developing high-quality, 
easy-to-use programs for our pro- 
ducts. Smartcom II takes full advan- 
tage of the Smartmodem's conve- 
niences and offers further labor- 
saving, time-saving, and thus cost- 
saving features for on-line use." 

Supported by the auto-dial/auto- 
answer Smartmodems, Smartcom II 
automatically originates and answers 
telephone calls. It automatically logs a 
user onto a remote system, such as a 
time-sharing service, information utili- 
ty, data base, or microcomputer. To 
save the user the time and trouble of 
rekeying a sequence of commands or 
information regularly sent to another 
computer, Smartcom helps a user to 
compose and store this information as 
a Macro. One Macro is reserved for 
the automatic log-on, the others are 
executed on the remote computer by 
just two keystrokes. Both save connect 
time and money. The Smartcom disk 
comes prepared with Macros for The 

10 Commander January 1983 



Source, CompuServe, and Dow Jones 
information services. 

To eliminate repetitive changes to a 
single set of program options, Smart- 
com II lets a user select and store 
parameters and up to twenty-six 
Macros for each remote system call- 
ed. Each group of parameters and 
Macros makes up a Communication 
Set, added by the program to a per- 
sonal Communication Directory. Com- 
munications parameters include 
telephone number, baud rate, duplex, 
character delay, confidential mode, 
password, keyboard definitions, and 
others. 

Smartcom II captures incoming data 
to disk and printer concurrent with its 
display on the screen. Special keys 
that stop and start the data capture 
allow selective storing and printing of 
data. File transfer is managed by three 
different protocols: Stop/Start, Send 
Lines, and the Verification Protocol for 
error-free transmission between Hayes 
programs (including the Hayes Ter- 
minal Program for the Micromodem 
IITM and Apple II). A Remote Access 
feature provides the originator of a call 
with the ability to send and receive files 
form an unattended system running 
Smartcom II. 

For further ease, Smartcom II 
displays a Disk Directory and creates, 
displays, prints, erases, and renames 
files without returning to the operating 
system, even while connected with 
another computer. One keystroke tog- 
gles between the remote screen and 
local menu. 

The program supports up to sixteen 
disk drives (including a hard disk), 
both parallel and serial printers, and 
either the monochrome or col- 
or/graphics display. The program re- 
quires an eighty column monitor, one 
disk drive, 96K RAM, an asyn- 
chronous communications card, and 
DOS 1.10 or 1.00. Estimated retail 
price for Smartcom II, with its complete 
owner's manual, is $119.00. Smart- 
com II for the IBM Personal Computer 
will be available through retail com- 
puter stores in February. 




DON'T 
BLAME 
THE 
SOFTWARE! 

Power Line Spikes and Hash often cause 
memory loss or erratic operation. Often 
floppies, printer & processor interact! 

OUR patented ISOLATORS eliminate 
equipment interaction AND curb damag- 
ing Power Line Spikes, Surges and Hash. 

Filtered 3-prong sockets and integral 

Spike Suppression. 125 VAC, 15 Amp, 

1875 W Total - 1 KW per socket. 

ISO-1 ISOLATOR. 3 Filtered Sockets; 
1000 Amp 8/20 usee Spike Sup- 
pressor $76.95 

ISO-4 ISOLATOR. 6 Filtered Sockets; 
1000 Amp 8/20 usee Spike Sup- 
pressor $128.95 

ISO-3 SUPER-ISOLATOR. 3 DUAL fil- 
tered Sockets; 2000 Amp 8/20 usee 
spike Suppressor $115.95 

ISO-7 SUPER-ISOLATOR. 5 DUAL fil- 
tered Sockets; 2000 Amp 8/20 usee 
Spike Suppresor $186.95 

Master-Charge, Visa, American Express 
TOLL FREE ORDER DESK 1-800-225-4876 

(except AK, HI, MA, PR & Canada) j 



Electronic Specialists, Inc. 

171 South Mam Street. Natick. MA 01760 
Technical & Non 800: 1 617655-1532 



ssssssssssssssssssssssssss 

"■-tOiUPU $Ef\l5Ei:.'' 

CENTIPOD $27.95 

Like Centiped, only better! 

FROGEE $27.95 

The exciting arcade ganne of Frogger. 

MOTOR MOUSE $29.95 

What a cheese'ee game! 

CRIBBAGE 

VIC-20 $14.95 C-64 $17.95 

This is the game of Cribbage. 

STAR TREK 

VIC-20 $12.95 C-64 $17.95 

Excellent adventure game! 

MASTER MIND 
VIC-20 $12.95 C-64 $19.95 

Makes you think. 

ROACH MOTEL $9.95 

Kill the bugs! 

YAHTZEE 1.1 $12.95 
YAHTZEE2.1 $14.95 

GENERAL LEDGER $19.95 

(VIC-20) 

CHECK MINDER 
VIC-20 $19.95 C-64 $24.95 

HOME INVENTORY $19.95 

(VIC-20) 

TO ORDER. 
P O. BOX 18765 
WICHITA. KS 67218 
(316) 684-4660 

Personal checks accepted 
(Allow 3 weeks) or 
C.O.D (Add S2.00) 
Handling charges S2.00 
VIC-20'" IS a registered trademark of Comnnodore 




GAME PROGRAM 
DEVELOPMENT KIT 





\ for the 

COMMODORE VIC - 20 

VIC - 20 is A regiiiered trademark of Commodore Business Mathines., Int:. 

SIX TOOLS TO HELP YOU WRITE YOUR OWN 
FAST ACTION ARCADE-STYLE GAMES 



DKCODER — Decodes programs wriiien in machine language (like game cartridges, utility cartridges, and even the 
computer's own internal operating programs). Produces a program in an English-like language (Assembler) which can 
be studied to figure out how thev did it. The programs created with the decoder can be customised with the EDITOR 
AND INCORPORATED INTO YOUR OWN NEW GAME PROGRAM. The AI^SKMBLFR turns your programs 
created with the Decoder and the Editor back into machine language and puts them out lo tape or disk so the LOADER 
can load them into the computer's memory to be tested and RUN. The MONITOR assisis you in debugging your new 
■game program by allowing you lo run it a step at a lime and making modifications if you need to. The INSTRUCTION 
GUIDE is written so that even a beginner can learn the skills needed lo become a prolH 

DESIGNED TO RUN ON ALL VlC-20 s 

$49.95 plus Sim p&h buys the kit that could make you rich. Why wait? 

Send check. M.O., VISA/MC (S2.00 s.c,» please include expiration date), or specify COD (add $3.00) to: 



a^p£. 



P.O. Box 207-C« Cannon Falls, MN SSOO^ 
S07-263-4821 




Single Drive Copy 



by Howard Rotenberg 
Ontario, Canada 



I was sitting at my computer think- 
ing about the possible problems on 
copying files on a single disk drive. 
Luckily I do not have to do this but 
there are more users now with a single 
disk drive. I thought it would be an in- 
teresting project, so I started to think 
about tackling it. After a little more 
thinking I realized that keeping track 
of a pointer into the file was the key to 
the program. Since BASIC doesn't 
support pointers as such, I decided an 
index to a temporary buffer which I 
would use to hold the partial fjle dur- 
ing transposition was the answer. This 
would act as my pointer and now I 
could start to write the code. 

The principal of the program is ac- 
tually quite easy. The idea is to read 
the source file until either the buffer is 
full or you reach the end of file. When 
one of these conditions are met you 
must then put in the destination 
diskette. The catch here is that the 
complete file may not fit into the buf- 
fer. Here is where the pointer comes 
into play. 



As we index into the buffer, we in- 
crement both a buffer index and a 
ongoing pointer. This pointer will be 
used at a later time. As mentioned 
before, the destination diskette is put 
in the drive and the file written until the 
buffer is completely dumped. The ap- 
pend command came in very handy 
for this program. The source diskette is 
then put back into the drive. (FOR THE 
CURIOUS): This is where the pointer 
finally comes in. We now have to read 
the source diskette again; but how 
much of it? Since I kept an ongoing 
pointer, a subroutine that just reads 
bytes until the value of the pointer is 
reached is used. The reads as such: 
FOR BYTE = 1 to PTR%: 
GET#1 , BYTES: NEXT: RETURN. This 
just reads into the file up to the point 
that we left off last time. Now we can 
go back to the regular routine anci 
continue to fill the buffer with more of 
the file. 

This whole process continues until 
the complete file is copied. The 
number of times you must switch disks 



depends on the size of the buff^ 
use and the actual file size, of cc 
In trying to use the largest buffe 
possible, I found out that every t 
byte is saved, three bytes of me 
are used. This is a limiting factor f 

buffer size. 
1 used variables and string n 

that I hope are fairly self docume 
This program only copies sequ 
files properly at the moment, 
would have to be some change; 
a small conversion program to 
for a regular program. A small m 

remember is that when the outp 
is initially opened there is a chr 

left as the first byte. Although 
routine was written for the Comm( 
computer (BASIC 4.0), I believe 
the program may be easily cha 
for any computer. In conclus 
would like to say that after testinc 
using this program, with all its dii 
changes; "THANK GOODNESS 
DUAL DISK DRIVES." 



REFiriV. 






10 REM 


*.+:**::+:**************jf:*>:**^^ 


20 REM 


* 


SINGLE DRIVE COPV * 


30 REM 


* 


FOR EflSIC 4.0 * 


40 REM 


* 


THIS PROGRflM COPVS SEQUENTIAL * 


50 REM 


* 


FILES FROM fl SOURCE DRIVE TO * 


60 REM 


* 


THE SFlME DESTINATION DRIVE. * 


70 REM 


* 


GOOD FOR SINGLE DISK DRIVES * 


80 REM 


* 


BUT MAV BE USED ON DUAL * 


90 REM 


* 


* 


100 REM 


* 


BV HOWARD ROTENBERG * 


110 REM 


* 


TORONTO ONTARIO * 


120 REM 


*****************.*.******5f:if:***if:*** 


130 BUFFER 


■= 4036 


140 DIM 


SVBVTE$(BUFFER> 


150 INriEK'-; 


= 


160 ftr: 


'■ 





170 OPEN 15 


.. S.. 15 



1S0 EE$ = " DISKETTE flHH PRESS ^ WHEN REflDV" 

190 112$ = "NRITING TO BEST I NAT I OH" 

200 Fl* = "PUT IH SRC" 

210 F2t = "PUT IN IiEST" 

220 III* = "REhDIHG SRC" 

230 INPUT" INPUT FILE":F$ 

240 I NPUT " OUTPUT F I LE " .; Q$ ■ 

250 PR I NT "THE BUFFER CAN HOLD "EUFFER/256" BLOCKS" 

260 PRIHTF2$EE$" TO OPEN NEW FILE" 

270 GOSUB1070 

280 REM 

290 REM #********************:f:******if:*if:** 

300 REM .* OPEN INITIAL FILE TO COPV TO * 

310 REM *****************.4fi^*#*****-f:****** 

320 REM 

330 DOPENttl.. '^GfiJ.W 

:-:4fi GOSUB 1130 

350 PRINTFlfEB* 

360 CLOSE 1 

370 GOSUE1070 

3S0 REM 

390 REM *********************if:*if:***.****** 

400 REM * REfiD FILE flHD FILL BUFFER * 

410 REM #**:4i**************:+*********:*.^ 

420 REM 

430 D0PEN#1 .. •;F*> 

440 GOSUB 1130 

450 IF PTR/i THEN GOSUB 950 

460 GETttl.EVTE* 

470 SVEYTEtaNDEX;-.') = BVTE$ 

480 INIiEX;;* = INHEX"; + 1 

490 PTRK = PTR.--; + 1 

500 IF ST <> 64 FIND INDEXK <= BUFFER - 1 THEN 460 

510 IF ST = 64 THEN CLOSE 1 :GOTO790 

520 CLOSEl 

530 REM 

540 REM mm*mmmmm-iiimi¥.mm^^^^^^^^ 

550 REM * WRITE OUT BUFFER TO FILE * 

560 REM *********************************** 

570 REM 

5S0 PRINTF2$EE$ 

590 GOSUB1070 

600 DD$ = D2f- 

610 GOSUB 1100 

620 flPPEND#2.. <G$> 

630 GOSUB 1130 

640 FOR BVTE = o TO inde;:=:;-; 

650 PR I NT#2 .. S VBVTE* < BVTE ) .: 
66e NEKT 
670 CL0SE2 



Commander January 1 983 1 3 



680 index;-;' = 
690 PRIHTF1$BB$ 
700 GOSUE1070 

710 nn* = rii* 

720 GOSUB1100 
730 GOTO 430 
740 REM 
750 

760 REM* DUMP LAST REMRIHS OF BUFFER * 
770 REM********************************** 
7S0 REM 

790 PRINTF2«:BB$" SFOR LAST DUMP" 
S00 GOSUE 1 070 
810 DD* = D2$ 
320 IJOSUB1100 
330 HPPENri#2.. <G$) 
340 GOSUB 1130 

350 FOR BVTE = TO INDEX"; - 1 
860 PR I HT#2 .. S VBVTE $ < BVTE ;■ .; 
870 NEXT 

330 DOLOSE: PRIHT":Sia::OPV FINISHED": END 
390 REM 

900 REM ********************************* 
910 REM * RERD FILE UP TO LRST POSITION * 
920 REM * RND THRON RWRV ALL BVTES * 
930 REM ********************************* 
940 REM 

950 FOR BVTE = 1 TO PTR;^: 
96@ GET#1..BVTE$ 
970 NEXT 
980 RETURN 
392 REM 

1000 REM ********************************* 
1010 REM * THREE ROUTINES TO * 
1020 REM * FLRSH CURSOR DURING GET * 
1030 REM * INITIATE DISKS * 

1040 REM * AND CHECK FOR DISK ERROR * 
1 050 REM ********************************* 
1060 REM 

1070 POKE 167.. 0: GET C*:IF C$ <> "^" THEN 1970 
1080 POKE 167.. 1 
1090 RETURN 
1100 PRINTDD$ 
1110 PRINT#15.. "10" 
1120 RETURN 

1130 IF DS THEN PRINT DS$ 
1140 RETURN 
RERDV. 



DCLOSE: END 



14 Commander January 1983 



/ F 



RADIX-50: Pack & Unpack 



by Howard Rotenberg 
Ontario, Canada 



Have you ever been stuck for 
memory? Have your disk files just 
seemed to grow like weeds? If you 
answered yes to either one of these 
questions then RADIX-50 may be for 
you. By now you may be wondering 
what this RADIX-50 that sounds like 
something out of a sci-fi movie is all 
about. I can assure you that it is not 
science fiction nor is it a new element 
of nature, although it has been around 
for quite some time. 

To put it simply, RADIX-50 is a way 
to convert or pack 24 bits of informa- 
tion into 16 bits or one word. This 
means a saving of Va memory from the 
original input. Before I go into the 
details of this handy little application, 
let's take a brief look at the history 
behind RADIX-50. 

RADIX-50 was developed for the 
PDP-8 computer approximately 15^20 
years ago. (FOR THE TRIVIA NUTS), 
the PDP-8 was a successor of the 
PDP-1 that was developed in Chalk 
River, Canada. The reason for the im- 
plementation of RADIX-50 will become 
very obvious shortly. The PDP-8 had 
a symbolic assembler with 8, yes only 
8 instructions. The symbols of course 
took up memory and (HERE'S THE 
CLINCHER) there was only 4k of 
memory available at the time. This, as 
you could imagine, led to problems 
when it came to memory manage- 
ment. The answer was RADIX-50. 

The chance to decrease the amount 
of memory needed for program devel- 
opment was too good to pass up. 
There was one major restriction to this 
method; only 40 characters were 
allowed. The valid characters were the 
alphanumerics, a space, two addi- 
tional characters such as the dollar 
sign or an ampersand and one special 
character that the user could choose. 
The later algorithms allowed the pro- 



RERDV, 



18 
20 
30 



R 

REM* 
REM* 
40 REN* 
50 REM* 
60 REN* 
70 



RflDi::-^-50 
IMPLEMENTED ON fl COMMODORE 
BUT MRV BE EflSILV MODIFIED 

FOR hnv basic or high level 

LflNGUflGE OH RHV COMPUTER 



* 
* 
* 
* 
* 
* 
* 
* 



80 REM* BV HOWARD ROTENBERG 

90 REM* TORONTO ONTARIO 

1 00 REM******************************* 

110 REM 

120 REM******************************* 

130 REM* THIS ROUTINE SETS THE 3 * 

140 REM* NON-ALPHFiNUMERIC CHARACTERS * 

150 REM* THAT WILL BE ACCEPTED AS * 

160 REM* INPUT EV THE PACKING AND * 

170 REM* UNPACKING SUBROUTINES * 

180 REM.***********.******************** 

190 REM 

200 PRINT ":EHTER THE 

TO BE" 
205 PR I NT "ACCEPTED" 
210 INPUT H* 

= 1 TO 3 

= mid$'::n$... 



3 SPECIAL CHARACTER:; 



220 FOR J 
230 SP*<J 

he:kt 

REM 
REM 
REM * 



.T..l> 



240 
250 
260 
270 



ACCEPT THREE ASCII EVTES * 
280 REM ****************************** 
290 REM 

300 PRINT: PR I NT". "HOW ENTER THE CHARACTER:! 
TO BE PACKED" 



305 
310 



PRINT"INDIVIIiUALLV" 



PR I NT "REMEMBER ONLV 0-9.. A TO Z.. SPACE 
AND ":5P*a>" "SP*';2>" "SP^CS;:-.; 

320 PR I NT "ARE VALID CHARACTERS" 

330 PR I NT "TO ENTER A SPACE JUST 
PRESS RETURN" 

340 G0:5UB 710 

350 CI = N 

360 G0:3UB 710 



Commander January 1 983 1 5 



grammers three special characters of 
their own choice. Why was this feature 
called RADIX-50 when all you have 
been hearing about is the restricted 
use of 40 characters? The answer is 
simple for those of you who have not 
already guessed. The PDP-8 used the 
octal number system and 50 octal con- 
verts to 50 decimal. 

Now we can get into the inner work- 
ings of the algorithm. I have translated 
it for the Commodore computer. The 
method used is actually quite simple. 
The first work that has to be done is 
to take the ascii character and convert 
it to tis RADIX-50 code representation. 
This is done by subtracting the ap- 
propriate amount from the input char- 
acter. The final numeric code will be 
from to 39 inclusive. For the charac- 
ters a to z (decimal 65 to 90) we will 
subtract 64. We subtract 21 from the 
numerics (decimal 48 to 57). This takes 
care of the codes 1 through 36. Last- 
ly we set the space to 0, and the three 
special characters to 37, 38 and 39 
consecutively. It is important to 
remember that we must always work 
with a set of triplets (three characters) 
for the algorithm to work efficiently. As 
the codes were set they were assign- 
ed to variables to prepare for a quick 
calculation to pack them into one 
word. In the sample program I have 
included, the variables are: C1, C2, 
and C3. The equation for the packing 
is: C4 = ([C1 * 40] + C2) * 40 + C3, 
with C4 now holding the word that 
contains our information. For example, 
if we save the characters A, B and C 
our formula would translate to C4 = 
([1 * 40] + 2) * 40 + 3. The variable 
C4 would be equal to 1 683. We have 
just put three bytes into one word or 
two bytes. This may not seem like such 
a big deal at this time but it now allow- 
ed a 6000 byte program to reside in 
a computer with only a 4000 byte 
capacity. It has cut the memory need- 
ed for any given program by Vs. Of 
course the savings increase with the 

order of magnitude of your programs. 
Consider your 32k file or 32k array 

now only needing approximately 
21 .3k bytes of memory. It is now that 

you may start thinking how useful this 
feature may be. 

Now that we have all this informa- 

1 6 Commander January 1 983 



370 
3S0 
399 

400 

410 
420 
430 
440 
450 
460 
470 

4S0 
4L=i*0 

500 

510 
520 
530 
540 
550 
560 
570 
5S0 
590 

600 

610 
620 
630 
640 
650 
660 
670 
680 
690 

700 

710 
7ii:y 
730 
740 



760 
770 
7S0 
790 

300 

310 
S20 
330 
340 
350 
360 



C2 = H 

GOSUB 710 

C3 ^ N 

REM 

REM 

REM * PACK THE THREE CHR-'S INTO 

REM * OWE WORD 

REM ***i+ii+:**********************i< 

REM 

r:4 = i:VCl*40>+C2>*40+C3 

PRINT"- THE THREE CHHRflCTERS RRE HOW 

PACKED INTO THE W0RD"C4 

REM 

REM ****************************** 

REM * UHPflCK THE RhDIX-SB WORDS * 

REM ****************************** 

REM 

PRIHT"iITHE UHPflCKED CHflRflCTERS ARE " .; 

H = IHT"::C4 / 1600> 

GOSUE 1000 

H = IHT':;(C4 - ^Cl * 1600) ;■ / 40> 

GOSUE 1000 

H = C4 - 'CCl * 1600;' - 01:2 * 40 > 

GOSUE 1000 

PRINT 

INPUT"»::ONTINUE OR END Cliil" ; C$ 

IFC$="l:"GOTO300 

END 

REM 

REM ***************************** 

REM * CONVERTS AH ASCII CHR TO * 

REM * ITS RADIX-50 CODE * 

REM * REPRESENTATION * 

REM ***************************** 

REM 

INPUT" llil";H* 

H = asC';;n$) 

IF N = 160 THEN N = O^ RETURN 

IF N >= 65 AND N <=90 THEN N = N - 64 ^ 

RETURN 

IF N >= 43 AND N 057 THEN N = N - 21 

RETURN 

IF N* = SP$(i::' THEN N = 37 : RETURN 

IF N* = SP$<£> THEN N = 33 : RETURN 

IF m = SP*(3> THEN N = 39 : RETURN 

PRINT" :t-IUT ONE OF INDICATED 

SPECIAL CHR-^S" 

PRINT" aSI HAVE SET IT TO A SPACES" 

H = 0- RETURN 

REf^ ***************************** 



REM 



* CONVERT FROM RADIX 50 



g^it'J * AND RETURN 'iTS EQUIVILENT * 

^^ * ASCII CHR * 

R I". M 



tion neatly stored it is time to get it back 
into its original form. This is actually the 
inverse operation to the packing of the 
bytes. To begin with we must unpack 
the RADIX-50 words individually. This 
is done with these formulas: 

Character #1 = INT(C4 / 1600) 
Character #2 = INT([C4 - (C1 * 

1600)] /40) 
Character #3 = C4 - (01 * 

1600) - (C2 * 40) 

For the computers that have the 
mod function the decoding is a little 
easier: 

Character#1 = INT(C4 / 1600) 
Character #2 = INT(C4 / 40 

MOD 40) 
Character #3 = 04 MOD 40 

These formulas will return us the 
RADIX-50 representations consisting 
of the numbers between and 39 in- 
clusive. This, as you may recall, is ex- 
actly what we originally converted our 
characters down to. We now convert 
from RADIX-50 and return its equiva- 
lent ascii character. This is done exact- 
ly opposite from the way we converted 
to the code to begin with. For the 
numerics 1 to 26 we add 64 which will 
give us the ascii characters a to z. For 
the numerics 27 to 36 we will add 21 
which will retrieve our ascii digits to 
9. If the numeric is we set the 
character to a space. Lastly if the 
numerics are 37, 38 or 39 we return 
the special character that it was set to 
by the program. Using the above for- 
mulas and the original characters we 
used to pack down, this is what we 
wouldcomeup with. Recall that 01 = 
A, 02 = B. 03 = and the packed 
word was 1683. 

X = INT(1683 / 1600) 
X is equal to 1 and after adding 64, 
chr$(n) = a 

Y = INT([1683 - (1 * 1600)]/ 40) 

Y is equal to 2 and after adding 64, 
chr$(n) = b 

Z = 1683 - (1 * 1600) - (2 MO) 
Z is equal to 3 and after adding 64, 
chr$(n) = c 

You can see that we now have our 
original three characters back. 

The sample program I have includ- 
ed allows you to experiment with 
RADIX-50. 1 use one safe-guard for the 
input of your characters. If you enter 



;::?9 


REM 


380 


REM 


390 


IF N = THEN N = 32 : RETURN 


300 


IF H >= 1 HND H <=26 THEN H = H + 64: 




RETURN 


910 


IF N >= 27 HND H <= 36 JHEH \\ = N 




+ 21: RETURN 


920 


IF H = 37 THEN N$ = SP$ ■:: 1 > : H = 6 




: RETURN 


930 


IF N = 38 THEN N* = SP*<2;:':H = Q 




■■ RETURN 


340 


IF H = 33 THEN Nf = SP$<3>-\\ = 9 




: RETURN 


350 


REM 


360 


REM ****if:****.iH**************:+:**** 


370 


REM * GET CHR THEN DISPLflV IT * 


330 


REM ****************:+•*********■*** 


330 


REM 


1000 


GOSUB 330: IF H THEN PRINTCHR$'CN> ; 




: RETURN 


1010 


PRINTN*.; :RblURN 


REflDV 





an invalid character, I set it to a space 
and inform you that this is the case. I 

have also allowed you to key in a 
return for a space although it is really 
accepting a shifted space. This may 

clear up the reason for checking for a 
160 instead of an ascii 32. In using this 

for real applications you would of 
course change this to a 32 (ascii space). 

On other computers you may have to 
change some of the ascii checks 

depending on what asc(a$) will return. 
This may even be true on the earlier 

Commodore computers since this pro- 
gram was done on an 8032. 

SUMMARY: 

So what good is all this to me? The 
applications are only limited to your im- 
agination. You may write sequential 
files using the packed format. This not 
only decreases your disk space need- 
ed but is a form of protection. If any 
one tries to read your files, all they see 



is a lot of meaningless numbers. It 
goes without saying that when you 
read your files you will have to translate 

them back to ascii. This of course is no 
problem since you already have the 

means available to you. Another sav- 
ing you may use is to store your strings 

as words in memory. This you will find 
will give you a substantial amount of 

memory savings. The only real criteria 
is that you stick to the restricted 

characters and the Commodore com- 
puters don't like a quote or colon for 

the special characters. If your string 
does not work out to a number of 

bytes divisable by three, the algorithm 
wilt still work but you will waste a byte 

since either one or two bytes will still 
get packed into a word. 

I hope this will intrigue some of you 
into using this old but still useful techni- 
que. Hopefully we will see some of 
your applications in the near future, 
but until then I think I will just PACK it 
in. 

Commander January 1983 17 



I 



"■-tQiDPU 5Ef\l5Ei:.'' 



VIC-20® 
VIC-20t*^ Personal Computer $179 95 

VIC-101 1A RS232C Interface 3995 

VIC-1515 Printer 334.95 

VIC-1530 Dalasette 67.50 

VIC-1540 Disk Drive 349.95 

VIC-1010 Expansion Module 139.95 

VlC-1311 Joystick 9.95 

VIC-1312 Game Paddles 19.95 

VIC- 1600 Telephone Modem 99 95 

CM-151 Terminal 40 29 95 

Produces 40 column output of information received through the modem 

VIC-1210 VIC 3K Memory Expander Cartridge 34 95 

Plugs directly into the ViCs expansion port. Expands to 8K RAM total. 

VIC-1110 VIC 8K Memory Expander Cartridge 52 50 

8K RAM expansion cartridge plugs directly inlo the VtC 

VIC-101 1 A RS232C Terminal Interface 39 95 

Provides interface between the \/IC-20 and RS232 telecommunications modems 
Connects to VICs user port. 

CM 16K Memory Expander 89 95 

CM 24K Memory Expander 110.95 

CARDBOARD 6 $87 95 

An expansion interface for the VlC-20. Allows expansion to <10K or accepts up to six 
games May be daisy chained for more versatility. 

CARDBOARDS $29 95 

Economy expansion interface for the VIC-20 

CARD "?" CARD/PRINT $79 95 

Universal Centronics Parallel Printer Interface for the VIC-20 or CBM-6<1. Use an 
Epson MX-80 or OKIDATA or TANDY or just about any other 

CARDETTE $39 95 

Use any standard cassette player/recorder with your VIC-20 or CBM-6<1 

CARDRITER $29 95 

A light pen with six good programs to use with your VIC-20 or CBM-64. 



BUSINESS & HOME APPLICATIONS FOR VIC-20® 

$48.95 
14.95 
30.95 



CW-107A Home Calculation Program Pack 

CPV-31 Data Files - your storage is unlimited 

CPV-96 Household Finance Package - to keep records of aii 

your household expenses 
CPV-208 Bar-Chart - display your numerical data 
CH Turtle Graphics - learn programming 

VIC Forth - is a powerful language lor BASIC programming 
HES MON - IS a 6502 machine language monitor with 
a mini-assembler 

HES Writer - time-saving word processing tool 
Encoder - keep your personal records away from prying eyes 
Statistics SadisticS - statistical analysis 

Total Time Manager 2.0 - creates personal or 

business schedules 

TotI Label - a mailing list and label program 

TotI Text BASIC 

Research Assistant - keep track of reference data 

TotI Text Enhanced 

GraflX Designer - design graphic characters 
Minlmon - allows you to program, load. save, or execute 
machine language programs 

CT-3 Order Tracker 

CT-4 Business Inventory - to maintain record of inventory 

CPV-210 Bidder 

CPV-21 7 Cash Flow Model - determine cash flow 

Client Tickler 
Club Lister 
Depredator 

Investment Analyst - keep track of investments 
and investment opportunitites 

Present Value 
Super Broker 

SyndlcatOr - calculates whether to buy or sell 
Ticker Tape - maintains investments profile 

Un-Word Processor - screen editor 

Phone Directory - never lose a phone number again 
Checkbook - home "utility' program 



8.95 
34.95 
49.95 
34.95 

34.95 
34.95 
14.95 
15.95 

13.95 
15.95 
17.50 
29.95 
12.95 
13.95 

15.95 
15.95 
13.95 
12.95 
16.95 
13.95 
9.95 
12.95 

10.95 
12.95 
13.95 
14.95 
16.95 
9.95 
14.95 
print a calendar 1 4.95 

12.95 
40.95 

19.95 

12.95 

7.95 

24.95 
29.95 
17.95 
14.95 

19.95 

BUSINESS & HOME APPLICATIONS FOR C-64 

CHC-504 HES Writer - word processor $39.95 

CHC-503 Turtle Graphics II - utilises the fuii graphics of your 64 49.95 

CHC-502 HESMON - machine language monitor w/mini-assembler 34.95 

CHP-102 6502 Professional Development System 29.95 

CFC Data Files - a management program 27.95 



CH 
CH 

CH 
CH 
CT-21 
CT-121 

CT-124 
CT-125 
CT-126 
CT-140 
CM-152 
CQ-5 



CPV-220 
CPV-221 
CPV-224 
CPV-236 

CPV-251 
CPV-269 
CPV-270 
CPV-274 
CPV-276 
CPV-286 
CS-111 



CPV-294 



CPV-296 
CPV-327 

CPV-328 

CHV 

CPV-367 

CC 

CS 
CS 



Calendar My Appointments - 

for every month in any year. 



CS 



The Budgeter - place your personal finances in order 
HESCOM - transfers data and programs bidirection- 
aiiy between VICs at three times the speed of a disk drive 
HESCOUNT - monitors program execution 
HESPLOT - Hi-res graphics subroutines 
Conversions - figures, volume, length, weight, area. 
and velocity to all possible configurations 
The Mail - your complete mail program CaSSette 

Disk 

Home Inventory - lists your home belongmgs 

Check Minder - (V-20 & 64) 

keep your checkbook the right way 

General Ledger - a complete general ledger 



COMMODORE SOFTWARE 
VIC-1211A VIC-20 Super Expander $57.99 

Everything Commodore could pack into one cartridge - 3K RAM memory expansion, 
high resolution graphics plotting, color, paint and sound commands. Graphic, text, 
multicolor and music modes 1024x1024 dot screen plotting. All commands may be 
typed as new BASIC commands or accessed by hitting one of the VICs special 
function keys. Includes tutorial instruction book. Excellent for all programming levels. 

\/IC-1212 Programmer's Aid Cartridge $45.99 

f^ore than 20 new BASIC commands help new and experienced programmers 
renumber, trace and edit BASIC programs. Trace any program line-by-hne as it 
executes, pause to edit. Special KEY command lets programmers redefine (unction 
keys as BASIC commands, subroutines or new commands 

VIC-1213 VICMON Machine Language Monitor $48 99 

Helps machine code programmers write fast efficient 6502 ar-sembly language 
programs. Includes one line assembler/disassembler. 



GAMES FOR YOUR VIC-20® 
Cribbage 
Motor Mouse 

Avenger Cart. - an invasion of space intruders 
and you're the VIC "Avenger" 

Supersiot Cart. - great music and sound effects! 
Super Allen Cart. - you're trapped in a maze 
Jupiter Lander Cart. - pilot your "Jupiter Lander" 

Draw Poker Cart. 

Midnight Drive Cart. - authentic night driving 

Radar Rat Race 

Sky Falling 

Mole Attack - a colorful cartoon action ' game 
Raid on Ft. Knox - try to escape the guards 
Adventure Land - Formerly available only on larger, 
more expensive computers. All Adventure games are decoded to 
'talk * on the Type N Talk voice synthesizer (available from VOTRAX) 

Pirate Cove Adventure - yo. ho, ho, & a bottle of rum 31.95 

Mission Impossible Adventure 

The Count Adventure - trapped in Dracuias castie 

with 3 days to find and destroy the vampire 

CW-1918 Voodoo Castle Adventure - you have to free 

Count Yorga from a curse 

Sargon II Chess - seven challenging play levels 

Gorl - {The smash-hit arcade game!) 

Omega Race - the ultimate space game 

Seawolf — an explosive Bally Midway arcade "classic" 

Maze of Mikor - adventure-packed game with 

stunning graphics 

Tank Wars 
Pinball 

Simon - it gets tougher as you get better Great for 

ktds of all ages. 

Fuel Pirates 

Laser Blitz 

Tank Trap 

Concentration 

Dam Bomber - pilot your plane, avoid enemy fire 
Shamus - search room after room for the shadow- 
eluding androids, two levels of intense arcade action 

Protector 
Breakout 

Hangman - unbelievable graphics and sound 
Memory - vie challenges your memory 
Match - hand and eye coordination 
Monks - a devilish game of logic 
Bomber - you must decide who you want to fly for. 
then pick a target and your experience level 
Amok - the halls of Amok are populated by robots that 
obey one instruction - get the intruder 
Tank vs. UFO - the tank IS moving back and forth 
along the base: shoot the UFO before it shoots you 
Snakman - Pacman for the viC 
Defender on Tri - you're the pllot of the experimental ship, Defender 
3-D Man - the popular arcade game, requires 3K 
Exterminator - a game full of bugs 



CCS 
CCD 
CW-1901 

CW-1904 
CW-1906 
CW-1907 
CW-1908 
CW-1909 
CW-1910 
CW-1911 
CW-1912 
CW-1913 
CW-1914 

CW-1915 
CW-1916 
CW-1917 



CW-1919 
CW-1923 
CW-1924 
CW-1937 
CH-G202 

CH-G203 
CH-G205 
CH-G206 

CH-G207 
CH-G209 
CH-G210 
CH-G211 
CH-G212 
CH-C307 

CH-C308 

CPU-79 

CPU-85 

CPU-87 

CPU-88 

CPU-89 

CPU-108 

CPU-109 

CPU-153 

CPU-194 



$14.95 
12.99 
24.95 

24.95 
24.95 
24.95 
24.95 
24.95 
24.95 
24.95 
24.95 
24.95 
31.95 



31.95 
31.95 

31.95 

31.95 
31.95 
31.95 
24.95 
15.95 

15.95 
13.45 
13.45 

13.45 
15.95 
15.95 
13.45 
13.45 
34.95 

36.95 
7.95 
9.95 
9.95 
7.95 
7.95 
995 

20.95 

9.95 

14.95 
17.95 
17.95 
20.95 



GAMES FOR YOUR 64 



CCS 
CFC 



CFC 



Cribbage 
Flight 64 - 



what a program! 



Spright Generator 

$12.95 



Cassette 
Disk 

Cassette 
Disk 



Mastermind (VIC-20) 
Star Trek (VIC) 
Blackjack (VIC) 
Tic-Tac-Toe 
Backgammon 
Maze 64 



$17.95 
14.95 
16.95 
15.95 
17.95 
(C-64) 19.95 

9.95 
11.95 

7.95 
14.95 
15.95 



Prices subject to change. 



TO ORDER: 

P.O. Box 18765 

Wichita, KS 67218 

(316)684-4660 

Personal checks accepted (Allow 3 weeks) 

or C.O.D. (Add $2) Handling charges $2.00 

VlC-20* is a registered trademark of Commodore 



I 

I 



MANY MORE PROGRAMS FOR YOUR 64 & 20 
18 Commander January 1983 



COMAL: A Closer Look 



by Howard Rotenberg 
Ontario, Canada 



The first and last time I saw an arti- 
cle about the language COMAL was 
in the Decennber issue of Compute 
way back in 1 981 . It was an excellent 
overall view presented to us by Jim 
Butterfield. I have always been in sup- 
port of structured languages such as 
Pascal, Waterloo Structured Basic and 
a few others not available for Com- 
modore computers yet. Since COMAL 
falls into this category, I chose to 
discuss the language in a little more 
depth mainly for the newcomers to 
structured programming. 

To briefly recap a little history about 
COMAL, it is a public domain pro- 
gram. Yes, this means it is FREE; and 
currently there are 3 different versions 
available. The language orignated in 
Denmark and was expended by 
Mogens Kjaer for the CMB computer. 
COMAL first came into existence in 
1974. In my opinion it seems to be a 
cross between Basic and Pascal with 
a strong flavor of Waterloo Structured 
Basic. To get a copy just as ask 
around any PET user groups or 
possibly your neighborhood computer 
store will let you copy a version. If you 
are really interested in all the facts on 
COMAL you may purchase a kit that 
contains disks, documentation, binder 
and a newsletter subscription. This 
should be available at most Com- 
modore dealers at this time. If all else 
fails you can write the COMAL Users 
Group, 5501 Groveland Terrace, 
Madison, Wl 53716. 

The three versions of COMAL that 
I spoke about are COMAL-80, 
COMAL-80+ and a split version that 
uses an editor and run time interpreter. 
Incidently, the split version will fit into 
a 1 6k computer and allows a minimum 
of source codes. 

When first entering code using 
COMAL you may enter a statement 
such as: FOR J = 1 to 10. Remarkably 



0010 
0020 
0030 
0040 
0050 
0060 
0070 

0030 

00y0 
0100 
0110 

0120 
01o0 

0140 
1 50 
0160 
0170 

01 So 

0190 
0200 
0210 

0220 
0230 
9240 
0250 
0260 
0270 
0280 

0290 

0300 
0310 

0520 
0330 
0340 
0350 
0360 
0370 
03S0 
0390 



//'* FLIP-FLOP 
//* SHMPLE COMRL-S0 PROGRRM 
//* EV HONflRE ROTEHEERG 
//* TOROHTO ONTflRIU 



// INITIALIZE DIMEHSIOH STflTEMEHTS // 

biM FLRGa0> 

DIM DOWN 16$ OF 16.. 3PRCE* OF 40. LINE* 

OF 37.. 3Ei::0NDLIHE$ OF 37 

DIM TEMP* OF 37 

HIM CLEflRSCREEH* OF 1. HOME* OF 1.. 

UP* OF 1.. DOWN* OF 1 

// INITIALIZE STRINGS // 

ribwNi6* • =''a«fl««««««9.M««««fl'' 

L I NE* ^ " »•»•••••••••••••••••••••• 

••••««ttttt" 

SECONDL INE* - =" OOCnjoociOOOOOOOOOOOOOOO 

000000000000000" 

SPhCE*<1 :40>:="" // SET STRING SPACE 

EQUAL TO 40 BLANKS // 

CLEARSCREEN* ■=":!" 

HOME*-="a" 

IiOWN*-="M" 

// INITIALIZE VflRIRELES /.■■■' 

Ebp:=FALSE // INITIALIZE END OF 

PROGRAM TO FALSE // 

CRT '■ =59468 

GRAPHICS: =12 

TVPEWRITER:=14 



// MAIN PROG 






EXEC SETEOflRD 

AGAIN: 

WHILE EOP=FflLSE DO 



Commander January 1983 19 



when you list this it is transformed into 
the following: F0RJ: = 1 to 10 DO. 
Here the shades of Pascal start to 
creep in. Notice the colon before the 
equals sign and the DO at the end. 
High level languages have always 
maintained that there is a difference 
between an equals statement and an 
assignment statement WHILE J = 1 is 
considered different from J: = 10 in the 
respect that the latter suggests that J 
will take on the value or be assigned 
the value 10. This is different from the 
previous statement that suggests that 
J is equivalent to 1 0. There is a fine line 
to this thinking but it is something that 
is easy to get used to. If you enter this 
code: 

0010 FOR J = 1 TO 10 

0020 FOR K = 1 TO 10 

0030 FOR I = 1 TO 10 

0040 PRINT I; 

0050 NEXT I 

0060 PRINT K; 

0070 NEXT K 

0080 PRINT J; 

0090 NEXT J 

0100 END 

When viewing the listing you will see 
something like this; 

0010 FOR J: = 1 TO 10 DO 

0020 FOR K:= 1 TO 10 DO 

0030 FOR l:= 1 TO 10 DO 

0040 PRINT I; 

0050 NEXT I 

0060 PRINT K; 

0070 NEXT K 

0080 PRINT J; 

0090 NEXT J 

0100 END 

Notice that all the lines are indented 
to the proper nesting level of your 
code. This helps to view the code in 
a block like structure well known to 
most high level languages. Statements 
such as REPEAT, WHILE. UNTIL, 
ELIF and the IF-THEN-ELSE all con- 
tribute to the ability to write structured 
code. For example these two samples 
do exactly the same function. The 
main difference is that in the first ex- 
ample the control field is checked at 
the beginning as opposed to the end 
in the second. Note the two slashes us- 
ed to denote comments as opposed 
to the familiar rem statement. 

0010 l: = 

0020 WHILE 10=10 
//Control field// 

0030 PRINT I, 
20 Commander January 1983 



PRINT riOWH16$.. 

INPUT "LINE TO CLEAR ? " : 

IF X<0 THEN EUP:=TRUE 

EXEC CHECKNUMEER(X> 

IF NOT OK THEN GOTO HUH IN 

EXEC SETFLflOa^;:- 

EXEC CLEHRLIHEcX) 

EXEC WHIT 

EXEC CHECKL I HE •:; X . FLAG < X ;• :■ 

EHDWHILE 

PRINT CLEhRSCREEN* 

POKE CRT.. TYPEWRITER 

END 



0400 
0410 

0420 
0430 
0440 
0450 
0460 
0470 
04S0 
0490 

0500 

0510 

?520 

0530 // 

0540 /.-•■ 

0550 // END OF MRIH PROG // 

0560 // AND START OF PROCEDURES // 

3570 // 

0580 // NOTE THAT THE PROCEDURE CHECKL I NE 





CALLS ,•••'.•••' 


9598 


// THE PROCEDURE CHECKFLflG WHICH IN 




TURN 


0680 


.•••'/ MflV CALL ONE OF TWO OTHER 




PROCEDURES 


0610 


/ / 


0620 


/ i"' 


y650 


PROC CLEhRLIHE'::LH::' 


0640 


PRINT HOME*.. 


0650 


FOR K-=i TO LH do PRINT DOWN*.. 


idbbQ 


PRINT SPflCEf- 


0670 


PRINT UP*.. 


0630 
0690 
e7'00 


ENDPROC CLERRLINE 


PROC FILLINE'::;^:;::- 


0710 


PRINT HOME*.. 


0720 


FOR J:=l TO H DO PRINT DOWN*.. 


0730 


PRINT J- 1.; LINE* 


0740 


PRINT UP* 


0750 


ENDPROC FILLINE 


0760 


/.••■' 


0770 


PROC F I LLOTHERL I NE C X ::■ 


0780 


PRINT HOME*.. 


0790 


FOR J:=l TO K DO PRINT DOWN*.. 


0800 


PRINT J-1 J SECOHDLINE* 


0810 


PRINT LIP* 


0820 


ENDPROC F I LLOTHERL I HE 


0830 


.1 .1 
r* r" 


0840 


PROC SETEOflRD 


0850 


POKE CRT.. GRAPHICS 


0860 


PRINT CLEflRSCREEH* 


0870 


FOR J:=l TO 9 DO 


0880 


PRINT J.; LINE* 


0890 


NEXT J 


8900 


ENDPROC SETEOflRD 


0910 


i' r' 


0920 


PROC WAIT 


0930 


FOR J:=l TO 1500 DO 


0940 


NEXT J 



0040 l: = l + 1 

0050 ENDWHILE 

0010 l: = 

0020 REPEAT 

0030 PRINT I, 

0040 l: = l + 1 

0050 UNTIL ini0 
//Control field// 

Strains must be dimensioned before 
they may be referenced or used. The 
names of variables and strings may be 
up to 16 characters long as opposed 
to Basic's 2. The following shows the 
dimensions of two strings that will be 
differentiated from each other even 
though the first 15 characters are the 
same: 

DIM ABCDEFGHIJKLMNOPS OF 40 
DIM ABCDEFGHIJKLMNOQS OF 40 

The lines above dimensioned both 
strings to a maximum value of 40 
characters. Strings may also be handl- 
ed much like Atari or North Star Basic. 
For example: 

0010 DIM A$ OF 30 

0020 A$: = "THIS IS THE NUMBER 
2 (ONE)" 

0030 PRINT A$ 

0040 A$(23:3): = "TWO" 

0050 PRINT A$ 

0060 END 
will produce the following results when 
the program is run. 

THIS IS THE NUMBER 2 (ONE) 

THIS IS THE NUMBER 2 (TWO) 
Similarily in the above case a$(6:2) 
would be 18. This feature allows a lot 
more flexibility in string handling then 
the Left, Right, and Mid-String 
commands. 

There is a Case statement similar to 
that of Pascal that is a more sophisti- 
cated way of conditionally executing 
code than the ON X GOTO command 
that we are all used to. A helpful 
feature about this Case structure is that 
it has an otherwise command that 
allows it to fall through to a default case 
if none of the conditions are met. It will 
take strings as well as numeric 
variables as the controlling factor. 

0010 INPUT "ENTER A 
NUMBER FROM ONE TO 
FOUR": NUMBERS 

0020 CASE NUMBERS OF 

0030 WHEN "ONE" 

0040 PRINT 1 

0050 WHEN "TWO" 

0060 PRINT 2 

0070 WHEN "THREE" 



0y50 
0960 
0970 
09S0 
0990 

000 
010 
020 
0.30 
040 
050 
060 
070 
080 
090 
1 00 
110 

120 
130 
140 
150 
160 
170 
180 
190 

200 

210 
220 
230 
240 
250 
260 
270 
280 
290 

300 

310 
340 
350 
360 
370 
380 
390 

400 

410 



EHEPRCiC WAIT 

PROC CHECKHUMBER < K > 

OK :=>=:<: 10 flHil x>0 

EHriPROC CHECKHUNEER 

PROC CHECKL I HE •:; K , FLRG ;' 
CfiSE >< OF 
WHEN 1 

EXEC CHECKFLflG ( K .. FLhG .:' 
WHEN 2 

EXEC CHECKFLflG < K .. FLAG > 
I'JHEN 3 

EXEC CHECKFLflG (. X . FLAG > 
i'JHEH 4 

EXEC CHECKFLflG ( X .. FLAG > 
WHEN 5 

EXEC CHECKFLflG ( X .. FLAG > 
WHEN 6 

EXEC: CHECKFLflG < X .. FLAG > 
WHEN 7 

EXEC CHECKFL AG < X .. FLAG > 
WHEN 8 

EXEC CHECKFLflG < X . FLAG > 
WHEN 9 

EXEC CHECKFL AG-; X.. FLAG) 
ENDCASE 
ENDPROC CHECKL I NE 

PROC SETFLAG<X> 

IF FLflG(;X>=0 THEN 

FLflG'::X>-=l 
ELSE 

FLflGCX;' :=0 
EHDIF 
EHIiPROC SETFLflG 

PROC CHECKFLflG < X .. FLAG :;■ 
IF FLHG=0 THEN 

EXEC FILLINE-:;X> 
ELSE 

EXEC F I LLOTHERL I NE C X ) 
END IF 
ENDPROC CHECKFLAG 



0080 PRINT 3 


of 1 6 characters or less followed by a 


0090 WHEN "FOUR" 


colon. EG: 


0100 PRINT 4 


0010 J: = 


0110 OTHERWISE 


0020 ENCORE: 


0120 PRINT "WELL YOU 


0030 J: = J -1- 1 


TRIED ANYWAY 


0040 PRINT J, 


0130 ENDCASE 


0050 GOTO ENCORE 


0140 END 


0060 END 



A few more points that I would like 
to mention before we set into the 
demonstration program is that the 
GOTO statement is only valid to a label 



Subroutines are replaced by pro- 
cedures and used by the command 
EXEC PROCEDURE NAME. The pro- 
cedures may or may not use para- 
Commander January 1983 21 



meters as I will now show. Consider 
the following procedure: 

0010 A: = 5;B: = 6;C: = 8;D: = 2 

0020 EXEC ADDNUMBERS 

0030 END 

0040 // Start of procedure to add 
numbers// 

0050 PROC ADDNUMBERS 

0060 PRINT A + B 

0070 ENDPROC 

0080 // 

The result will be 11 since all four 
variables are global or public; that is 
they are known and can be used by 
the whole program. This is different 
from the next example that incor- 
porates local variables only known to 
the procedure: 

0010 A: = 5;B = 6;C = 8;D: = 2 

0020 EXEC ADDNUMBERS(C.D) 
// C and D are passed // 

0030 END 

0040 // Start of procedure to add 
numbers // 

0050 PROC ADDNUMBERS(A,B) 

0060 PRINT A + B 

0070 END PROC 

0080 // 

Have you all guessed what the 
answer will be? If you said 11 again 
I can't blame you, but the answer is 
10. The variables A and B in the pro- 
cedure have nothing to do with the 
global variables declared at the begin- 
ning. Since they are only known to that 
procedure as mentioned earlier A in 
the procedure takes on the value of C 
and B takes on the value of D giving 
us our answer. If I had used local 
variables such as J or K you may have 
figured it out easier, but what fun 
would that have been? By utilizing and 
and testing procedures before you 
write your main driving program you 
can be fairly sure that your program 
will work on the first runs. Another 
reason for this is that unlike basic the 
syntax is checked on input so you can 
only run time errors. 

Reffering back to a statement that 
Jim Butterfield made in his article on 
COMAL about there not being a SYS 
command for an exit to BASIC, well he 
should be happy to know that the later 
versions did include it. This also means 
that you can use machine language 
subroutines just as in Basic. As a mat- 
ter of fact there are a lot of useful com- 
mands not available in Basic. Here is 
a compilation of them. I won't go into 
22 Commander January 1983 



their functions but I believe most of 
them are obvious. 

I have included a short sample pro- 
gram that demonstrates further the 
concepts that I have been discussing. 
It simply displays 9 rows of black dots 
and when asked to pick a row it disap- 
pears and then returns as white dots. 
It acts like a flip-flop since a flag is set 
and when that line is chosen again it 
reverts to its original colour. The only 
aspects of COMAL that it uses that I 
haven't mentioned is the boolean func- 
tions (TRUE and FALSE) and the way 
it is used in the procedure 
CHECKNUMBER. CHECKNUMBER 
may be referred to as a typed pro- 
cedure since it returns a value to us; 
in this case the boolean value of OK 



that is set to true or false by checking 
the limits set for x. Most of the other 
procedures are considered untyped 
since they do not return any value to 
us but just execute the function they 
are meant to do. The mainline pro- 
gram is right after the variable and 
string declarations, followed by the 
procedures. I believe that the pro- 
cedure names clearly define what they 
do so there should be no need to 
describe them as one usually must do 
in BASIC. I hope you enjoy the pro- 
gram and will modify the code to get 
the feel of this interesting language. In 
a sequel to this article I will go further 
into the aspects of COMAL and get in- 
to file handling, etc. Have fun and let's 
hear from some more of the COMAL 
users out there. 



ABS 


AND 


ATN 


AUTO 


BASIC 


CASE 


CHAIN 


CHR 


CLOSE 


CLOSED 


CON 


COS 


DATA 


DEBUG 


DEL 


DIM 


DIV 


DO 


ELIF 


ELSE 


END 


ENDCASE 


ENDIF 


ENDPROC 


ENDWHILE 


ENTER 


EOD 


EOF 


ESC 


EXEC 


EXP 


FALSE 


FOR 


GOTO 


IF 


IN 


INPUT 


INT 


LABEL 


LEN 


LET 


LIST 


LOAD 


LOG 


MOD 


NEW 


NEXT 


NOT 


OF 


OPEN 


OR 


ORD 


OTHERWISE 


OUTPUT 


PRINT 


PROC 


READ 


REF 


REM 


RENUM 


REPEAT 


RESTORE 


RND 


RUN 


SAVE 


SELECT 


SGN 


SIN 


SIZE 


SPC 


SQR 


STATUS 


STEP 


STOP 


TAB 


TAN 


THEN 


TIME 


TO 


TRAP 


TRUE 


UNTIL 


USING 


WHEN 


WHILE 


WHILE 


ZONE 


EDIT 


CAT 


APPEND 


RANDOM 


UNIT 


FILE 


POKE 


PEEK 


SYS 











o 

CO 



I 

o 




^tv/^ • DISK'O'MATE 



(Write for Price) 
A must tor 2040/4040 disk owners. Write protect indicators/ 
switches, power indicator and error beeper. 

•"Real World" SOFTWARE (si7 . s^s, 

Word Processor. Mailing List. Catalog. Ham Radio. Frequency Counter. 



r-"OLD" 8K PETs- 



• 21 1 4 - TO - 6550 RAM ADAPTER (si2 S25) 



, V 211«fr- I V-099U riAm AUAKICri (S12-S25) 

I Replace 6550 RAMs with low cost 21 14s. Hundreds Sold! 

< •4K MEMORY EXPANSION (si6 S62) 

Low cost memory expansion using 21 14s tor bigger programs. 

OPTIMIZED DATA SYSTEMS 

Dept.O. P.O. Box 595 - Placentia, CA 92670 

DISKOMATE trademark Optimized Data Systems ■• PET/CBM trademark Commodore 




o 

CO 



I 

o 








¥IOt<l 



Commander would like to apologize for an error in our December 1982, Premier Issue. We neglected to print 

the listing in the Enterprise article. Due to this error we are republishing the article 

"Enterprise" with its listing. Again, we would like to apologize for this error. 

The Editor 



Enterprise 



by Tim Parker 
Ontario, Canada 



One of the most popular types of 
computer games is the genre 
patterned on the television series 
Star Trek. Versions exist for almost 
every type of programmable 
machine, ranging from hand held 
calculators to super computers. 
These games generally fit perfectly 
into the small home computer field, as 
the home computer can employ 
graphics and sound, along with 
cursor manipulations that are seldom 
found on larger systems. The trade- 
off, of course, is memory. 

The VIC series provides an inter- 
esting challenge for a programmer 
who wishes to creat a TREK game. 
The small screen sizeof theVIC-20is 
ideally suited to a game of this sort, 
allowing graphic block positioning. 
The 64, with its larger screen (and 
memory), can make use of the extra 
space for more involved displays. 
Although a version can bewrittentofit 
in an unexpanded VIC-20 with a 3.5k 
of memory, the limitations are quite 
severe. However, with an extra 3k of 
memory, a fairly good program can be 
achieved. 

This article deals with the game 
ENTERPRISE, which fits nicely in the 
6.5k of an expanded VIC-20. By 
changing a few memory screen 
pointers, the program will also run 



10 V=36878:S2=V-3:G0SUB6000 

20 PRINT" { CLEAR } " : P0KE36879 ,141 

30 X=RND(-TI) :V=36878:S4=V-1 :S3=V-2:S2= 

V-3:S1=V-4 
40 C=99:GOSUB1000 
50 DEPPNA(X)=INT(RND(1 )*X)+1 
60 DEPPNL(X)=(7724+FNA(10)*22)+FNA(10) 
70 B(PNA(9))=1 :BT=1 
80 P0RZ=1T0PNA(9) :K(PNA(9) )=PNA(4) :NEXT 

:Q=PNA(9) 
90 F0RZ=1T09:KT=KT+K(Z) :NEXT:IPKT<1 1 THE 

NCLR:G0T030 
500 G0SUB10000 

310 P0RA=1T0PNA(7) :P0KEPNL(1 ),42:NEXT 
400 IPK(Q)>0THENP0RA=1T0K(Q) :P0KEPNL(1 ) 

,1 1 :NEXT 
410 IPB(Q)>0THENP0KEPNL(1 ) ,2 
420 LE=PNL(1 ) :IPPEEK(LE)<>32THEN420 
500 G0SUB1 0000 :&0SUB1 1000 
510 P0KELE,5 
520 IPS<20THENG0SUB5000 
600 IPE<00RC<0THEN9000 
610 PRINT" i BLUE} C=COMPUTER" : PRINT"P=PIRE 

WEAPON" :PRINT"M=MOVE SHIP" 
620 PRINT" IRVS} COMMAND" 
660 GETA$:IPA$=""THEN660 
670 IPA$="M"THEN2000 
680 IPA$="P"THEN3000 
690 IPA$="C"THEN4000 
700 G0T0660 
1000 E=99: 3=99 :SC=99:P=99:T=99: 1=99 :W=9 



Commander January 1983 23 



with more memory, or using the 64. By 
trimming out the "flash", a pared down 
unexpended version can be used. (It 
can be modified to run on PETs, and 
other computers by changing color, 
controls, and in some cases, cursor 
control characters. Memory location 
pointers will also require changing, 
but this is primarily a text based game, 
so conversion will be fairly simple.) 

In order to utilize memory in the 
most efficient manner, and to enable 
fast program execution, screen 
displays are generated using POKE 
commands. The primary saving here 
is in not having to use a matrix for the 
screen display. (A 10x10 matrix can 
consume over half a kilobyte of 
memory.) 

By cutting down on the number of 
text statements, further memory 
saving is achieved. While the game 
may lack some of the features of the 
40k (and up) Trek versions for 
computers such as the Apple, it 
includes many of the extras that are 
most interesting. 

Generation of most of the game 

factors is controlled by random 
number generators. This is initialed 
by reference to the built in clock 
function. 

Color is used to separate the 
screen into logical sections, and to 
add a little bit of variety to the display. 
Sound programming in this game was 
constructed for the VIC-20's sound 
registers. These can be converted to 
the 64's more involved sound device 
by reference to the manual. Alterna- 
tively, sound can be omitted, although 
the saving in terms of memory space 
is minimal. 

When RUN, the screen display is 
shown in the upper left. A matrix grid 
is labelled by the numbers to 9 on 
the top and left axes. These 
correspond to the X and Y coordi- 
nates respectively. The video display 
uses an asterisk to represent a star, a 
"K" for the Klingons, and an "E" for the 
Enterprise. If a starbase exists, it is 
represented by a "B". (If exira 
memory is available, custom 
characters can be generated for 
these items.) 

The upper right shows the 
Enterprise's status at all times. The 
Universe of the game is a 3x3 matrix, 
giving nine quadrants. The current 
24 Commander January 1983 



9: RET 

2000 

2010 

2020 
2050 
2040 
2050 
2070 
2080 
2100 

2110 
2120 
2150 
2140 
2150 

2160 
2170 
2180 

2190 

2200 

2210 

2220 

2230 

02500 

2240 

2500 

2510 

2550 
2540 
2550 
2560 
5000 
5010 

5020 
5050 

5040 

5050 
5400 
5410 
5420 
5450 
5440 
5450 

5460 
5470 
5480 
5490 
5500 



URN 

GOSUB11000 

PRINT"|RVS}W{OFP}ARP OR |RVSU|0FF} 

MPULSE?" 

GETA$ : IFA$=" "THEN2020 

IFA$="I"ANDI>0THEN2200 

IFA$="V"ANDW>0THEN2070 

aOT0500 

aosuBi 1 000 

PRINT"ENTER DESTINATION" 

PRINT "QUADRANT NUMBER" : PRINT" (1-9) 
II , 

GET A$ : IFA$= " " THEN2 1 1 

B=VAL(A$) :IFB<10RB>9THEN21 10 

PRINTB:(J0SUB7000 

IFB=QTHEN500 

POKEV ,10: F0RZZ= 1 T09 : P0KES1 , 220 : FOR 

ZX=1T0120:NEXT 

P0KES1 ,0:FORZX=1T050:NEXTZX,ZZ 

POKEV, 0:P0KES1 ,0 

Q=B:W=W-PNA(9) : PRINT" { CLEAR} ": IFW<OT 

HEN\;=0 

aOT0500 

aOSUBI 2000 

L1 =7747-t-Y*22-t-X : 1= I-FNA ( 9 ) 

IFI<OTHENI=0 

IFPEEK( LI ) =2THENG0SUB1 000 : BT=0 : GOT 



IFPEEK(L1 )<>52 THEN500 

GOSUB7000 

P0KES4 ,175: POKEV ,10: FORZX= 1 T0600 : N 

EXT 

FORZZ=10TOOSTEP-1 : POKEV, ZZ 

F0RZX=1 T01 00 : NEXTZX, ZZ : P0KES4 ,0 

P0KELE,52:LE=L1 

P0KELE,5:GOTO5OO 

G0SUB1 1 000 

PRINT" {RVS}P{ OFF} HASER OR {RVS}T{0FP} 

ORPED O?"; 

GET A$ : IFA$= " " THEN5020 

IPA$="P"ANDP>0THENP=P-FNA(8) :WE=1 : 

GOT05400 

IFA$="T"ANDT>0THENT=T-FNA(8) :WE=2: 

G0T0540O 

G0T05O0 

IFT<OTHENT=0 

IFP<OTHENP=0 

G0SUB1 0000 : G0SUB1 2000 

0=7747-t-Y*22-i-X 

IPPEEK (0)011 THEN500 

PRINT" {DOWN} {BLACK} { RVS} FIRING" : 

C=C-PNA(2) 

IFWE=1 THENG0SUB5800 

IFWE=2THENG0SUB5900 

IPFNA(9)<5THEN5600 

P0KE0,52:K(Q)=K(Q)-1 :KT=KT-1 

PRINT" {RVS} {WHITE} { DOWN} KLINGON 

DESTROYED" 



quadrant is shown at the top of the 
status display. 

Below the quadrant, the ship's 
functions are all represented by 
efficiency ratings from to 99. They 
are ENGY (energy), SHLD (shield), 
COMP (computer), SCAN (scanner), 
PHSR (Phaser), TORP (photon 
torpedoes), IMPL (impulse engines) 
and WARP (warp engines). After any 
action, these ratings are updated. 

On each turn, there are three 
primary commands that can be 
executed: COMPUTER, MOVE or 
FIRE. MOVE allows either impulse 
movement (within the current 
quadrant) or warp movement (to 
another quadrant) as long as the 
respective ratings are not zero. 

FIRE will target either photon 
torpedoes or phasers on a specified 
coordinate. As the firing is computer 
controlled, there is little dependance 
on distance to target within a 
quadrant. 

COMPUTER allows several 
different functions to be carried out. A 
scanner will give the number of 
enemy ships and starbases 
remaining in the universe. Self 
destruct does exactly that. (To be 
used only in the face of overwhelming 
odds, or by masochists.) The SET 
command allows the ratings of any of 
the status functions to be raised or 
lowered. (Except computer and 
scanner— these are considered to be 
unfixable.) If a function is lowered, the 
excess units are diverted to ENGY 
(think of them as auxiliary batteries) 
up to a maximum of 99. Note that any 
energy above 99 is lost! If a function Is 
raised, the required units are diverted 
from ENGY, to a minimum of zero. 

Strategy is a matter of personal 
preferences. At each quadrant where 
there are enemy ships, they will take 
shots at the Enterprise on any FIRE or 
MOVE command. (As computer 
commands are considered to be 
carried out almost simultaneously, 
the enemy does not fire at you when 
the computer is used.) 

There is the possibility of the 
enemy calling in reinforcementsif the 
battle goes poorly for them, or if they 
sense victory. 

All hits by the enemy are deducted 
from the shield rating. If this dropstoo 



3510 G0SUB5700 

5600 IFKT=0THEN8000 

3610 G0SUB7000:G0T0500 

3700 VP=VP+25:TN=130 

3710 F0RZZ=15T00STEP-1 

3720 P0KEV,ZZ:P0KES4,TN 

3730 PORZX= 1 T0230 : NEXT : NEXT : P0KES4 , : 

RETURN 
3740 P0KES4,0: RETURN 
3800 P0RZZ=1 2T00STEP-2 - 5 : POKEV, ZZ 
3810 P0RZX=220T0225 
3820 P0RZY=225T0220STEP-1 
3830 P0KES2,ZX:P0KES3,ZY 
3840 NEXTZY,ZX 
3850 P0RZX=220T0225 
3860 P0RZY=225T0220STEP-1 
3870 P0KES2 , ZY : P0KES3 , CX 
3880 NEXTZY,ZX 

3890 NEXT : P0KES2 , : P0KES3 , : RETURN 
3900 TN=210 
3910 P0RZZ=15T00STEP-1 
3920 POKEV, ZZ:P0KES4,TN:P0KES1 , TN 
3930 P0RZX=1T0130:NEXT 
3940 TN=TN-.5:NEXT 
3950 P0KES4,0:P0KES1 ,0:RETURN 
4000 G0SUB1 1000:IPC=0THEN500 
4005 C=C-PNA(6) :IPC<OTHENC=0 
401 P0RZZ=1 T04 : POKEV, 1 : P0KES3 , 200 
4015 P0RZX=1 T050:NEXTZX:POKES3,0 
4020 P0RZX=1T030:NEXTZX,ZZ 
4025 P0KES3,0:P0KEV,0 
4030 PRINT" 1=SCANNER":PRINT"2=SET 

SHIELDS" 
4040 PRINT"3=SET PHASER" 
4050 PRINT"4=SET TORPEDO" : PRINT"5=SET 

IMPULSE ENG" 
4060 PRINT"6=SET WARP ENG" : PRINT"7=SELP 

DESTRUCT" 
4070 GETA$:IPA$=""THEN4070 
4080 A=VAL(A$) : IPA<1 0RA>7THEN4070 
4090 G0SUB11000:0N AG0T041 00, 4200, 4300, 
4400,4500,4600,4700 
4100 SC=SC-PNA(8) 
4110 IPSC<0THENSC=0:G0T0500 
4120 PRINT"THERE ARE" ;KT; "KLINGONS" 
4130 IPBT=1THENPRINT"AND 1 BASE LEPT . " : 

GOT04150 
4140 PRINT" AND BASES LEPT." 
4150 POKEV, 10:P0RZZ=1T090 
4160 P0KES3,PNA(100)+128 
4170 P0RZX=1T010:NEXTZX,ZZ 
4180 P0KEV,0:P0KES3,0 
4190 G0T0500 
4200 PRINT"SHIELD RATING" : INPUT" (0-99) " 

- A 

4210 ipA<OORA>99THEN500 
4230 IPA<STHEN4260 



Commander January 1983 25 



' low, a "red alert" warning is issued. At 
this point, reinforcement of the 
shields is highly advisable. If the 
shield rating drops to zero, enemy 
damage is deducted from ENGY, with 
the further possibility of internal 
damage to the other functions. If the 
computer drops to zero, or both 
shields and energy are zero, then the 
game is over, and the enemy is 
triumphant. 

Computer rating drops when a 
weapon is fired, as it acts as a 
targeting device. The scanner drops 
when it is used. (If the scanner rating 
is zero, the scanner is inoperational.) 
If weapons or engines fall to zero, they 
are useless until the computer is used 
to increase their rating. 

Impulse engines are of little use in 
combat, as distance to enemy is not a 
factor in hit probability. The impulse 
engines are primarily used to 
manoeuvre to starbases for 
refuelling. A wise captain uses the 
impulse engines as a battery backup 
for energy and shield. 

If a starbase is landed on, the 
ratings of the ship all increase to 
maximum, except for the computer. 
Using a starbase to refuel will affect 
your performance rating at the end of 
the game, when a numerical score 
will be given that reflects the number 
of enemy destroyed, and the 
Enterprise's status at game 
conclusion. 

The program is designed in a 
modular method, allowing quick 
modification and reference to any 
sections. Initiallization and enemy 
distribution is established in the first 
few lines. The control loop is lines 
500-700, which direct further 
branching to any relevant 
subroutines. 

The program is broken down as 
follows: 
70-90 Klingon distribution and base 

location 
300-500 POKEtng of K, E and B 

onto grid 
500-700 Control loop 
1000 Refuelling 

Most of the variable's functions are 
easily identified from their context. 
Line length has been limited in most 
cases to one statement per line to 
simplify programming and 
debugging. The major exception is 

26 Commander January 1983 



4240 E=INT(E-A+S) : S=A: IFE<OTHENS=S+E:E= 


4250 G0T0500 

4260 E=INT(E+S-A) : S=A: IPE>99THENE=99 
4270 G0T05OO 
4*500 PRINT" PHASER RATING" : INPUT" (0-99) " 

;A 

4310 :IPA<00RA>99THEN500 

4330 IPA<PTHEN4360 

4340 E=INT(E-A+P) : P=A: IPE<OTHENS=S+E:E= 


4350 G0T0500 

4360 E=INT(E+P-A) : P=A: IPE>99THENE=99 
4370 G0T0500 
4400 PRINT"TaRPED0 RATING" : INPUT" (0-99) 

" ; A 
4410 IPA<O0RA>99THEN5OO 
4430 IPA<TTHEN4460 
4440 E=INT(E-A+T) : T=A: IPE<OTHENT=T+E:E= 


4450 G0T0500 

4460 E=INT(E+T-A) :T=A: IPE>99THENE=99 
4470 G0T0500 
4500 PRINT"IMPULSE RATING" : INPUT" ( 0-99) 

" ; A 
4510 IPA<00RA>99THEN500 
4530 IPA<ITSEN4560 
4540 E=INT(E-A+I) : I=A: IPE<OTHENI=I+E:E= 


4550 G0T0500 

4560 E=INT(E+I-A) : I=A: IPE>99THENE=99 
4570 G0T0500 
4600 PRINT"WARP ENG RATING" : INPUT" ( 0-99) 

" ; A 
4610 IPA<O0RA>99THEN5OO 
4630 IPA<WTHEN4660 
4640 E=INT(E-A+V/) :W=A: IPE<OTHENW=W+E:E= 


4650 G0T0500 

4660 E=INT(E+V/-A) :W=A: IPE>99THENE=99 
4670 G0T0500 

4700 PRINT" {RVSJSELP DESTRUCT ACTIVE" 
4710 P0KEV,12- 

4720 P0RZZ=15T00STEP-1 : P0KES4 , 1 50+ZZ*3 
4730 P0KE36879,PNA(2OO)+8 
4740 P0KEV,ZZ:P0RZX=1T0150:NEXTZX,ZZ 
4750 P0KE36879,141 : PRINT" { CLEAR] " 
4760 G0SUB10000:P0KES4,0 
4770 PRINT" {2D0WNi DESTRUCT COMPLETED" 
4780 :PRINT"{D0WNl SCORE=" ; INT( VP/2) : 

GOT08200 
5000 P0RZQ=1T04 
5010 PRINT" {HOMEMRVSHRED} CONDITION RED 

5020 g6sUB5500 

5030 PRINT" {HOME} "; 

5040 G0SUB55OO:NEXT 



■fc- 



the IF. ..THEN statement. All 
statements after the IF. ..THEN are 
executed if the conditional is true, 
allowing the avoidance of multiple iFs 
or subloops. For byte savers, the 
number of statements per line can be 
increased, thereby saving several 
bytes for each line number omitted. 

The difficulty of the game can be 
changed in line 90, where KT refers to 
the total number of Klingons. 
Increasing the maximum from 1 1 will 
increase the difficulty. The hit 
probability is given in line 3480. 
Decreasing the number in the FNA 
(X) statement will decrease the 
difficulty. 

As the variables are in this listing, 
the game is relatively easy to win 
once a strategy has been determined 
as effective. There is however always 
the possibility of a few damaging hits 
from the Klingons that totally ruin 
shields. That's when things get very 
Interesting! 

When using ENTERPRISE on a 
\/IC-20 with more memory, the 
screen pokes have to be changed. 
Line 60 defines the location of the 
memory locations for these screen 
pokes. As set with the value 7724, the 
program will run on unaltered and 3k 
expanded VICs. (The memory map 
actually starts at 7680; the extra 44 
positions the cursor at the start of the 
display grid. Color starts at 37888.) 
With 8k or more, substitute the value 
4140. (The screen memory starts at 
4096, and the color memory at 
37888.) 



2000-2999 
Impulse) 
3000-3999 
4000-4999 
5000-5999 
6000-6999 
7000-7599 
7600-7999 
8000-8999 
9000-9999 
10000-10999 

grid 
11000-11999 
12000-12999 



Movement (Warp and 

Fire control 
Computer functions 
Red Alert loop 
Introductory loop 
Klingon fire loop 
Reinforcement loop 
Victory loop 
Destruction loop 
Status and screen 

Cursor positioning 
Coordinate loop 



With extra memory, the program 
can be expanded in ways that are 
limited only by the programmer's 
imagination. The 3x3 universe can be 
expanded, as can the quadrants. 



5050 PRINT" { HOME llRVSn RED I CONDITION RED 

5060 PRINT" {13D0WN}" 

5070 RETURN 

5500 P0KEV,10 

551 P0RZA=1 80T0226STEP2 : P0KES5 , ZA 

5520 P0RZS=1T07:NEXTZS,ZA 

5530 P0KES3,0:P0RZD=1T010:NEXT 

5540 POKEV,0: RETURN 

6000 P0KE36879,25 

6010 PRINT" {CLEAR} {IIDOWN} {BLACK} 

ENTERPRISE" 
6020 P0KEV,12 
6030 READA,B 
6040 IPB=-1THEN6200 
6050 F0RZZ=1T0B:P0KES2,A 
6060 NEXT:GOT06030 
6200 P0RZZ=12T00STEP-1 
6210 P0KEV,ZZ 

6220 P0RZX=1T050:NEXTZX,ZZ 
6230 P0KES2,0:P0RZZ=1T020:PRINT 
6240 F0RZX=1 T040 : NEXTZX, ZZ : RETURN 
6800 DATA1 35 , 1 50 , 1 63 , 80 , 1 87 , 220 , 1 83 , 60 , 

163,60 
6810 DATA147, 60, 175, 70, 195, 180,-1 ,-1 
7000 IPK(Q)<1THENRETURN 
7010 G0SUB11000:D=0 
7020 F0RX=1T0K(Q) :D=D+PNA(8) :NEXT 
7025 PRINT" {RVS} {BLUE} KLINGONS FIRING": 

PRINT"DAMAGE=" ; D : S=S-D : VP= VP-D/2 
7030 IPS<OTHENE=E+S : S=0 : PRINT" { WHITE} SHIE 

LDS DOWN": PRINT" {RVS} INTERNAL DAMAGE" 
7040 IPS=0ANDPNA(4)=1THENC=C-PNA(20) :IP 

C<OTHENC=0 
7050 IFS=0ANDFNA ( 4 ) = 1 THENSC= SC-FNA ( 20 ) : 

IFSC<0THENSC=0 
7060 IPS=0ANDPNA(4)=1THENP=P-PNA(20) :IP 

P<0THENP=0 
7070 IPS=0ANDPNA(4)=1THENT=T-PNA(20) : IP 

T<OTHENT=0 
7080 IPS=0ANDPNA(4)=1THENI=I-PNA(20):IP 

I<OTHENI=0 
7090 IPS=0ANDPNA(4)=1THENW=W-PNA(20) : IP 

W<OTHENW=0 
7100 P0KEV,10:P0RZZ=1T015 
7110 P0RZX=200T0220+ZZ : P0KES2 , ZX: NEXTZX 

^ Z 
7120 P0KES2,0:P0KEV,0 
7400 IPPNA(4)=1THENG0SUB7600 
7410 RETURN 
7600 G0SUB1 1000:PRINT"KLING0NS RADIOING 

FOR":PRINT"HELP " 

761 POKEV ,10: P0KES4 , 230 : F0RZX=1 T02500 : 

NEXT : P0KES4 , : POKEV , 
7620 IPPNA(3)>1THENRETURN 
7630 PRINT"KLING0N WARPING INTO": PRINT" 

SECTOR" 



Commander January 1983 27 



Different enemy classes can be 
incorporated, and a more 

sophisticated targeting and hit 
algorithm can be used. The "fog of 
war" can be imitated by adding limited 
intelligence as the scanner and 
computer ratings drop. Mutinies, 
shuttlecraft, drones and many other 
features can add to the complication 
of the game. 

On the output side, the sound can 

be altered (especially with the 64's 
exceptional sound generators), and 
use can be made of multiple screens. 
Animation is possible for the 
ambitious. 

Although several commercial 
versions of Trek games are now 
available, this prograrri was designed 
from scratch to conform to the 
author's concepts. Comparison with 
the commercial products has shown 
areas where it is deficient, and where 
it excells. Placing the game in a 
magazine such as this ensures that 
people will have a choice, and do not 
have to pay inflated software prices. 
Enjoy, and may the Klingons all be 
cowards! 




7640 POKEV ,10: P0RZZ=23OT01 50STEP-! : POKE 

S2,ZZ:FORZX=1T020:NEXTZX,ZZ:POKEV,0: 

P0KES2,0 

ZZ=PNL(1 ) :IFPEEK(ZZ)<>32THEN7650 

P0KEZZ,11 :K(Q)=K(Q)+1 :KT=KT+1 : 

RETURN 

G0SUB1 1000; PRINT 

"YOU WIN" 

IFBT=1 THENVP=VP+( VP* . 25 ) 

IFC=OTHENVP=VP-( VP* . 1 ) 

IFS=OTHENVP= VP- ( VP* . 2 ) 

VP=INT(VP) 

PRINT" {2D0WNJ SCORE=";VP 

PRINT" i2D0WN| {RVS} ANOTHER GAME?" 

GET A$ : IFA$= " " THEN82 1 

IFA$="Y"THENRUN 

PRINT" {CLEAR}": END 

G0SUB1 1000: PRINT" {RVS} SHIELDS 

DESTROYED" 

PRINT"LIPE SUPPORT KNOCKED" : PRINT" 

OUT. . .YOU LOSE." 

PRINT" SC0RE=0 ! " : GOT08200 

PRINT" { HOME} { 2D0WN} { BLACK} 01 23456789" 

PRINT"0" : PRINT"1 " : PRINT"2" : PRINT" 

3":PRINT"4" 

PRINT"5" : PRINT"6" :PRINT"7" : PRINT" 

8": PRINT" 9" 

PRINT" {HOME} {DOWN}" 

PRINTSPC(12)"{RVS} {WHITE} QUAD= ";Q 

PRINT : PRINTSPC ( 1 2 ) " { YELLOW } ENGY= 

{3 LEFT } " ; E 



7650 
7660 

8000 

8010 
8020 
8030 
8090 
8100 
8200 
8210 
8320 
8400 
9000 

9010 

9020 

10000 

10010 

10020 

10100 
10110 
10120 

10130 
10140 
10150 
10160 
10170 
10180 
10190 
10200 
11000 
11010 

11020 
12000 

12010 
12020 

12030 
12040 
12050 
12060 
12065 
12070 



PRINTSPC(12)"SHLD= { 3LEFT | " ; S 

PRINTSPC(12)"{CYAN}C0MP= |3LEFT}" ;( 

PRINTSPC (1 2) "SCAN= {3LEFT}";SC 

PRINTSPC( 1 2) " { BLUE} PHSR= { 3LEFT} " ; ] 

PRINTSPC(12)"T0RP- {3LEFT}";T 

PRINTSPC ( 1 2 ) " { RED } IMPL= { 3LEFT } " ; I 

PRINTSPC(12)"WARP= {3LEFT}";W 

RETURN 

PRINT" {HOME} {12D0WN}" 

F0RZ=1T09: PRINT" 

" : NEXT 

PRINT" {8UP}":RETURN 

G0SUB11000:PRINT"ENTER X 

COORDINATE"; •», .: 

GETA$ : IFA$=""THEN1 201 

X=VAL(A$) :IPX<00RX>9THEN12010 " 

PRINTX 

PRINT"ENTER Y COORDINATE"; 

GETA$:IFA$=""THEN12050 

Y=VAL(A$) :IFY<00RY>9THEN12050 

PRINTY 

RETURN 



*, 



1^^ 



28 Commander January 1983 




Vanilla Pilot? 

Yes, Vanilla Pilot! 
What is Vanilla Pilot? "C 



Vanilla Pilot is a full- featured pilot 
language interpreter including TURTLE 
GRAPHICS for the PET or CBM 4000, 
80C0, 9000 and CBM -64 series computers. 

At last! A Pilot interpreter for the 
Commodore computers. This Pilot in- 
cludes some powerful extensions to 
the screen editor of the computer. 
Things Uke FIND /CHANGE, TRACE 
and DUMP enhance the programming 
environment . ^— 



The TURTLE has a very powerful set 
of gTaphics commands. You can set the 
Turtle's DIRECTION and turn him LEFT 
or RIGHT. The pen he carries can be 
set to any of the 16 colors in the CBM- 
64. He can DRAW or ERASE a Line. 

What else? Vanilla Pilot is all this and 
much, much more. In fact, we can't 
tell you about all of the features of 
the language-in this small ad. So 
rush down to your local Commodore ■ 
computer dealer and ask him to show 
you Vanilla Pilot in action. Be sure 
to take the $2.00 discount coupon. 

Hurry, you have qnly ^- short time to 
redeem your coupon. So use it now! 



Tamarack Software j^ gi 
Darby, MT. 59829 )« 



IJft 




Retailer: Send the redeemed coupons lo 
Tamarack Software, Darby, MT 59829. We will 
pay 52, plus S. 35 handlinii; for the redemption 
of these coupons. 1 f requested . invoices show- 
ing sufficieni purchase of Vjinilla Pilot must be 
submitted. Coupons submitted to us more than 
30 days after the expiriiiion d;itc will not t>e 
honored, 

Kxpkrta, April 15. 19S3, 



Commander January 1983 29 



RAVINGS OF A MADMAN 



by Tim Parker 
Ontario, Canada 



When ail is said and done, most 
people buy their computers for play- 
ing games. Certainly this reason is not 
the primary justification at purchase 
time. The computer is bought to 
balance cheque books, teach young- 
sters the miracles of future gadgets, or 
allow a painless entry in today's com- 
puterized marketplace. 

All of that, of course, is fine, but to- 
tally irrelevant. Most computers are 
bought for game playing. (Here the 
distinction should be made between 
the "home computer" such as the 
VICs, Apples, etc., and the true small 
computer. The latter usually does not 
have a color screen, sound capabili- 
ties, or graphics. It runs CP/M or a 
similar operating system, and is intend- 
ed for true computational or computer 
assisted work.) 

Luckily, it is easy to justify the cost 
when a VIC-20 setup can be obtain- 
ed for the same cost as a home video 
system. And the game quality is com- 
parable, despite what many people 
feel. The VIC-20 now has quite a large 
range of preprogrammed software 
available for it, while the newer VIC-64 
is still in its early stages. 

So what are good games for the 
VIC-20? It depends on what you like! 
That seemingly useless advice has 
some truth behind it. An arcade player 
would certainly not want to sit down to 
a high level chess or Othello game, 
while and adventure game player may 
disdain the shoot-em-up video games 
that are the rage. 

What you want decides where you 
go to get it. The cartridges brought out 
by Commodore in the initial release 
were not the best available by any 
stretch of the imagination. The tradi- 
tional invaders game ("Avengers") is 
a classic, and deserves a place in any 
videophile's collection, but it is by no 
means 'state of the art.' The rest of 
Commodore's cartridges are interest- 
ing, but lack distinction when com- 
pared to what else is available. 

A very good line of video game cart- 
ridges and programming aids is avail- 
30 Commander January 1983 



able from United Microware Industries. 
Their games range from "Amok" (a 
"Berserk" look-alike), through 
"Spiders of Mars", an addictive game 
based loosely on "Defender", and 
several others. UMI was the first com- 
pany to get in on the VIC-20 with a 
good line of games. (Their address is 
listed at the end of this column.) 

One company that has developed 
over the past six months or so is Pro- 
tecto Enterprises, which acts as a 
retailer of many items for the VIC-20. 
They cover the major items on UMI's 
list, as well as many other companies. 
Their prices are usually very 
competitive. 

Adventure gamers can turn to Scott 
Adams' Adventure International, who 
have adapted a few of their more 
popular games onto cartridges for the 
VIC. Commodore also has new adven- 
ture cartridges released. 

Chess, and other "high-brow" 
games are still in a low end of the 
development scale. The release of 
Sargon chess was good, as it plays a 
well reasoned game, but surely that 
does not represent the limit of the 
VIC'S capabilities. Several other com- 
panies have released non-video 
games for the VIC, although only time 
will tell if they stand up to the market. 

Perhaps the cheapest way to get 
games for the VIC is through program- 
ming them yourself. Many books are 
available, usually with titles such as 
"Fifty Thousand Games For Your 
Home Computer". The vast majority 
of these books are a disappointment. 
Only a vew versions of Hangman need 
to be seen before the novelty wears 
thin. A few good books are available 
however. Two of my favorite compen- 
dia of games are published by Work- 
man Publishing. Edited by David Ahl, 
the books (' ' Basic Computer Games' ' 
and "More Basic Computer Games") 
contain a potpourri of different pro- 
grams. Most are not too exciting, but 
a few are worth the time to key them 
in. These two are definite recommen- 
dations for the well-stocked book shelf. 



Finally, the other major source of 
programs is the computer magazine. 
There is quite a large variety available 
now, although some cater only to cer- 
tain specialties. However, there are 
two or three that regularly publish in- 
teresting games (including this erudite 
journal) that go beyond the edge of 
boredom. Be choosy, and careful, and 
many wasted hours can be avoided. 

Above all, enjoy yourself! A few 
minutes sitting in front of a television 
or monitor can be relaxing, if ap- 
proached correctly. The major pro- 
blem is that many people get uptight 
about the whole affair, and treat each 
game as a live or die situation. 
Remember it's only a game! 

There are a few quick shortcuts 
available to the VIC-20 programmer 
that allows keying in of often used 
commands. The best known example 
is that of performing a LOAD followed 
by a RUN: hold down the shift key and 
press RUN/STOP. This initiates the 
cassette load sequence. When the 
program is LOADed, a RUN is auto- 
matically supplied. 

The semi-warm boot is also fairly 
useful. (Time for a couple of definitions. 
A "boot" is when the computer con- 
trol system is reloaded fresh into 
memory, or accessed by a ROM. A 
"cold boot" occurs when the com- 
puter is turned off, then on again. This 
initializes everything. A "warm boot" 
is used in more advanced computer 
systems to refer to reloading the 
operating system without turning the 
machine off. This usually leaves 
memory intact.) 

As the VICs do not have an operat- 
ing system as such, a warm boot will 
be the same as the reset command 
(holding down the RUN/STOP key and 
hitting RESTORE) which resets some 
memory pointers but doesn't harm the 
memory contents. The semi-warm 
boot I refer to above is a term used for 
performing a cold boot without physi- 
cally turning the machine off. This is 
accomplished with a SYS call (mach- 
ine language call) to the processor. 



The instruction SYS 64802 will perform 
the same task as a cold boot, without 
having to touch the on/off switch. 

There are two ways to perform a 
RUN. One is a SYS call (SYS 50830). 
The other is a three key sequence. 
Hold down the left shift key, press 2 
(to give a quotation mark) then 
RUN/STOP. The screen will give a lit- 
tle wiggle, then a run will start. This is 
not as useful a trick as might be im- 
agined. Typing R-U-N is not all that 
demanding, but this does allow one- 
handed RUNs when the other hand is 
busy. 

There are a few more tricks that are 
known, but of limited value. Next col- 
umn. I'll mention a few that act as a 
security system for your programs, 
preventing SAVEing or LISTing, and 
aborting the RUN/STOP key. Stay 
tuned. 

Finally, now that the VIC modems 
are available almost everywhere with 
few supply problems, it's worth taking 
a look. A modem (it stands for 
MOdulator-DEModulator) allows con- 
nection of the computer to a telephone 
line, and subsequent connection to 
either another computer, or one of the 
bulletin board (or similar) services 
available throughout the continent. 
The cost is very reasonable, and the 
number of program that can be add- 
ed to your library is quite large, depen- 
ding on which service you get. Some 
users groups are offering modem 
facilities. 

One problem with the VIC-20 is its 
screen size. Don't expect the VIC to 
act as a high priced terminal. It can't. 
Most terminals have a 24x80 screen 
minimum (some allow 130 columns). 
The VIC can't compete with that. Is it 
a problem? Not really. The VIC pro- 
bably won't be used for the same pur- 
poses as the larger terminals, so it is 
adequate. 

For those who want the larger 
screen size, there are many video 
screen expanders available now that 
give forty, or even eighty columns on 
the VIC. But I'll leave that for next 
month. 

United Microware Industries Inc., 
3503 Temple Ave., Suite D, Pomona, 
CA 91768. (714) 594-1351. 

Protecto Enterprises, Box 550, Bar- 
rington, Illinois 60010. (312)382-5244. 



Join the 




k 



Micro-Ed 




educational 
software 



Send for free catalogs 

Specify: Pet • VIC 

• Commodore 64 

telephone 

us at 

612-926-2292 

Micro-Ed Inc. 
P.O. Box 24156 
Minneapolis, MN 55424 



Commander January 1983 31 



GOBBLE! 



by Tim Parker 
Ontario, Canada 



Gobble! is relatively easy to play, but 
is not such a simplistic game that in- 
terest quickly fades. It is a game ideally 
suited to the screen size of a VIC-20, 
although it can easily be modified to 
the larger size of the VIC-64, PET, or 
other computers. It fits inside the 
memory of an unexpanded VIC-20. 

The game is based upon a maze 
generation program that draws a uni- 
que maze (i.e. has one entrance and 
one exit). Several people have 
developed the algorithms required for 
this purpose, including David 
Matuszek {BYTE, December 1981 , Vol 
6 No 12) and Charles Bond (COM- 
PUTE!, December 1981 . Vol 3 No 1 2). 
The latter has been adapted for use in 
this program, although most variables 
had to be changed to accomodate the 
screen size. The details of the maze 
generator segment will be left for the 
reader to investigate. 

The object of the game, simply 
stated, is to "eat" as many dots as 
possible with your character (a ball) 
while avoiding the enemy (a square) 
that runs the maze at the same time 
as you, albeit slower. For each dot you 
eat, you get one point. For each dot 
the enemy eats, you lose one point. 

In the early levels of the game, there 
are several cross connections provid- 
ed to make escaping the enemy easy. 
As the levels are completed, the 
number of connections becomes 
fewer, and the game subsequently 
more difficult. 

Bonus points are awarded on com- 
pletion of the fourth, ninth, and four- 
teenth rounds (assuming you get thgt 
far). A player may exit the maze 
through the hole in the bottom at any 
time, whether all the dots are eaten or 
not. The next level will then be 
generated. 

The version printed here is intend- 
ed for keyboard control. Modification 
of joystick is easy, and the details are 

32 Commander January 1983 



JOYSTICK MODIFICATIONS 




Add the following lines: 




9000 


DD = 37154: PI =37151: P2 = 37152 




9010 


POKE DD, 127: P = PEEK(2)AND128: jO= -(P = 0) 




9020 


POKE DD,255: P = PEEK(P1) 




9030 


J1=([PAND.8]=-0): J2= -([PAND16] = 0): J3= - 
([PAND4] = 0): RETURN 




90 


GOSUB 9000 




100 


IFJQANDPEEK(L + 1)<> 160THENPOKEL,32:L = L 
:GOSUB600: P0KEL.81 


+ 1 


110 


IFJ2ANDPEEK(L-1)<> 160THENPOKEL,32:L = L 
:GOSUB600: P0KEL,81 


-1 


120 


IFJ1ANDPEEK(L + 22)<>160THENPOKEL,32:L = L + 
:GOSUB600; P0KEL,81 


22 


130 


IFJ3ANDPEEK(L - 22)<> 1 60THENPOKEL,32:L + L - 
:GOSUB600: P0KEL,81 


■22 



20 P0KE56879 , 25 : V=56878 : 30=56875 : PT=0 : D 

L=0 

50 P0KEV,10 

40 G0SUB6000 

50 L=INT(RND(-TI) ) :DEPPNA( X) =INT( RND( 1 ) 

*X)+1 

60 DL=DIrl-1 :IPDL=50RDL=100RDL=15THENG0SU 

B5000 

65 GOSUB1000 

70 L=7754:P0KEL,81 :P0KEL-22,160 

80 G0SUB2000 

90 GETA$:IPA$<>""THENB$=A$ 

100 IPB$="K"ANDPEEK(lrl-1 ) <>1 60THENP0KEL, 

52:L=L+1 :G0SUB600:P0KEL.81 

1 10 IPB$="J"ANDPEEK(L-1 ) <> 1 60THENP0KEL, 

52:L=L-1 :G0SUB600:P0KEL,81 

1 20 IPB$="M" ANDPEEK( L+22 ) < > 1 60THENP0KEL 

; L=L+22 : G0SUB600 : POKEL , 8 1 
IPB$="I"ANDPEEK(I,-22)<>160THENP0KEL 

:L=L-22;G0SUB600: POKEL, 81 
IPL+1 =A0RL-1 =A0RL+22=A0RL-22=ATHEN8 



,52: 

150 

,52: 

140 

000 

150 

160 

170 

500 

600 



IPL=81 52THEN60 

P0KES0,0 

G0SUB2010 

G0T090 

IPPEEK( L) =46THENPT=PT+1 : POKESO , 251 



given at the end of this article. The 
joystick version runs approximately 
twice as slow as the keyboard, due to 
the frequent subroutines required for 
joystick commands. 

Instructions are given at the begin- 
ning of the game, after an introductory 
title and short tune. 

The program is constructed in a 
series of subroutines to allow modifica- 
tions to be easily added. The routines 
are explained below. 

The maze generation section is lines 
1000-1999. The color of the back- 
ground is controlled by variable CL. 
Lines 1210-1230 add cross connec- 
tions at the lower difficulty levels, con- 
trolled by variable DL. 

The enemy is moved by lines 2000- 
2999. The movement is executed in 
line 2010. Lines 2500-2510 subtract 
one point from the score for every dot 
the enemy eats. 

Lines 5000-5999 control the in- 
troductory title and jingle. The prompt 
for instructions is given. 

Instructions are in lines 7000-7999. 

The game termination sequence is 
given in lines 8000-8999. 

The major control loop is at lines 
60-1 60. Here the enemy is controlled, 
and the keyboard input obtained and 
analyzed. A joystick branch to lines 
9000-9999 is used here for joystick 
control. 

The meaning of most of the 
variables should be obvious from their 
context. 

Strategy in Gobble! will become ob- 
vious after a few games. Study of the 
enemy's movement will reveal a very 
useful fact about the direction it takes. 
You may find it is not always a good 
idea to clean out a level before mov- 
ing to the next. 

Only one "life" has been used here, 
although more could be added. Also 
only one enemy has been added. At 
higher levels, more can be introduc- 
ed, although the game slows down 
considerably if a large number are 
controlled. 

Good luck, and start Gobbling! 

To save wear and tear on the 
fingers, a copy of this game can be ob- 
tained by sending $3 (to cover first 
class postage and duplicating), a 
mailer, and a blank cassette to: Tim 
Parker, 66 McKitrick Dr., Kanata, On- 
tario, K2L 1T7 



610 RETURN 

1000 A(0)=2:A(1 ) =-44 : A( 2) =-2 : A( 3) =44 

1001 CL=CL+1 

1002 IPCL=1THENPRINT"" 
1005 IPCL=2THENPRINT"" 

1004 IPCL=3THENPRINT" 
It 

1005 IFCL=4THENPRINT"" 

1006 IPCL=5THENPRINT"" 

1007 IPCL=6THENPRINT" 

1008 IPCL=7THENPRINT"":CL=0 
1010 WL=160:HL=46:SC=7690:A=SC 
1020 PRINT"" 

1030 F0RI=1T021 

1040 PRINTSPCd )" " 

1050 NEXTI 

1060 P0KEA,4 

1070 P0KES0,145:K=PNA(4)-1 :X=K 

1080 B=A+A(K) :POKESO,0:IPPEEK(B)=¥LTHEN 

POKEB, K : POKEA+A ( K) /2 , HL : A=B : G0T01 070 

1090 K=(K+1 )*-(K<3) :IPK<>XTHEN1080 

1 100 K=PEEK(A) :P0KEA,HL:IPK<4THENA=A-A( 

K) :G0T01070 

1200 P0KE8152,32:P0KE8150,32 

1210 P0RZ=1T0(10-DL) :X=PNA(16) :Y=PNA(18 

) 

1220 

1230 

1240 

1250 

;HS 

1300 

,150 

1310 

1320 



P0KE7704+X+Y*22,46 
NEXT 

P0KE8174,160 
PRINT"SCORE=":PT:"' 



;SPC(12)"HI=" 



P0KE7788 , 1 40 : P0KE7832 ,133: P0KE7876 
P0KE7920 ,133: P0KE7964 , 1 40 
IPDL< 1 0THENP0KE8030 , DL+1 76 
IPDL>9THENS1 =INT(DL/1 0) : POKE8O3O , S 

1 +1 76 : POKE8O52 , DL+1 76-31*10 

1500 RETURN 

2000 A=8152:P0KEA,102:K=2 

2010 B=A+A(K)/2:IPPEEK(B)<>160THENG0SUB 

2500 : POKEB ,102: POKEA , 32 : A=B : K= ( K+2 ) +4* ( 

K>1) 

K=(K-1 )-4*(K=0) 

PRINT"SCORE=";PT;"0 " 

RETURN 

IPPEEK(B)=46THENPT=PT-1 :IPPT<OTHEN 



2030 

2040 

2050 

2500 

PT=0 

2510 

5000 

E" 

5030 

5040 

5050 

5060 

)+128 

5070 P0RT=1T010 



RETURN 

PRINT"" ;SPC( 5) "BONUS SCOR 



PRINT" 500 
PT=PT+500 
PRINT" SCORE= 
P0RWL=1T0100 



POINTS BONUS!" 



PT 



P0KES0,INT(RND(1 )*128 



; NEXT: NEXT 



Commander January 1983 33 



5080 POKESO,0 

5090 F0RT=1T01000:NEXT 

5160 RETURN 

6000 PRINT"" ;SPC(5) ;"*********** 



6002 
6004 
6006 
6008 
6009 
6010 



*ii 



PRINTSPC(5)"* 
PRINTSPC(5)"* GOBBLE! *" 

PRINTSPC(5)"* *" 

PRINTSPC( 5) "***********" 

G0T06500 

PRINT"0000 
INSTRUCTIONS?" 
6060 GETA$:IFA$=""THEN6060 

IFA$="Y"THEN7000 

RETURN 

F0RWL=1T03 

F0RSC=1T09 

READX:P0KES0,X 

F0RT=1T0100:NEXT 

NEXT: RESTORE: NEXT 

P0KES0,219 

F0RQ=10T00STEP-1 : POKEV, Q : F0RT=1 T01 
00: NEXT: NEXT 

6540 POKEV, 10:P0KES0,0:G0T06010 
6560 DATA21 5,201 ,228,207,215,219,207,20 

1 ,219 

7000 PRINT" GOBBLE" 

PRINT" A RANDOM MAZE WILL" 

PRINT"BE DRAWN ON THE SCREEN"; 

PRINT"CONSISTING OF DOTS." 

PRINT" 

THE SCREEN, YOU" 

PRINT"ARE SHOWN AS q, AND" 

PRINT"YOUR TASK 

PRINT"MANY DOTS 

PRINT"YOU SCORE 

PRINT"FOR EACH 



6070 
6120 
6500 
6505 
6510 
6520 
6530 
6535 
6536 



7010 
7020 
7030 
7040 
ON 
7050 
7060 
7070 
7080 
7090 
7110 
7120 
7130 
7140 
7150 
7160 
7170 
7180 
7190 
7200 
7210 
7220 
7230 
7240 
7250 
7260 
7270 
7280 



IS TO EAT AS"; 
AS YOU CAN." 
ONE POINT" 
DOT EATEN." 
PRINT" ALSO ON THE SCREEN" 
PRINT" IS YOUR NEMESIS, SHOWN"; 
PRINT"AS &. THIS TRAVELS" 
PRINT" THROUGH THE MAZE, ALSO"; 
PRINT"EATING DOTS. YOU LOSE" 
PRINT"ONE POINT FOR EACH DOT"; 
PRINT" IT EATS." 
PRINT" IF THE & GETS CLOSE" 
PRINT" TO YOU, IT WILL EAT" 
PRINT"YOU, AND YOU LOSE." 
PRINTSPC(12)"HIT A KEY"; 
GETA$ : IFA$=""THEN7220 
PRINT" THERE IS AN ENTRANCE"; 
PRINT" TO THE MAZE THAT SHUTS"; 
PRINT "AFTER YOU ENTER. ONLY" 
PRINT"ONE EXIT EXISTS. TO" 

'LEAVE THE MAZE, AND GO"; 
'TO THE NEXT LEVEL, YOU"; 



PRINT' 
PRINT' 



34 Commander January 1 983 



7290 


PRINT"M0VE INTO THE EXIT." 


7300 


PRINT"AS THE LEVELS INCREASE"; 


7310 


PRINT"SO DOES THE DIFFICULTY"; 


7320 


PRINT"OP THE MAZE." 


7330 


PRINT"BONUS POINTS ARE GIVEN"; 


7340 


PRINT"AT LEVELS 5 10 AND 15." 


7345 


PRINT" 


";SPC(10);"I=UP" 


7346 


PRINTSPC(5)"J=LEFT K=RIGHT" 


7348 


PRINTSPC(10)"M=D0VN" 


7350 


PRINT" 


TRY FOR A HIGH SCORE." 


7360 


PRINT" IT'S NOT THAT EASY " 


7370 


PRINT" HIT A KET TO START"; 


7380 


GETA$ : IPA$=" " THEN7380 


7390 


RETURN 


8000 


POKEL ,102: POKEA , 32 : CL=0 : POKESO , 


8010 


PRINT" GAME OVER 


8015 


IPPT>HSTHENHS=PT 


8020 


P0RT=1T01 000: NEXT 


8030 


PRINT" ANOTHER GAME?" 


8040 


GETA$:IPA$=""THEN8040 


8050 


IPA$<>"Y"THENEND 


8090 


PT=0:DL=0 


8100 


G0T060 


READY . 



I7S4* 



NEW 

VIC SOFTWARE VIC 



COMPUTERMAT • BOX 1664M 
LAKE HAVASU CITY, ARIZONA 86403 



NEW COMMODORE 64 SOFTWARE - FREE CATALOG 

(602) 855-3357 write for free catalog of vie software 



WARNING — BUYERS OF THESE GAMES HAVE BEEN KNOWN TO BECOME ADDICTS 



ALIEN INVASION — Arcade style excitement for your VIC. Look out here 
they come. Aliens are descending hrom the sky. Move your laser into position 
and defend the earth. The attacks are unending — can you survive or will 
Vader rule the galaxy. Many extras on this one. 20 levels of play. 
CATTLE-ROUNDUP — The cows are loose in the maze. You have 2 
minutes to get each cow back into the corral. You can push, coax and call the 
cows. Some cows are not very smart and some are very stubborn. You will 
have to help them. Be careful that you don't leave the corral gate open. Color 
graphics and sound. Eight levels of play and a time limit. 
HEAD ON — Your car moves forward around the race track. You can move 
up, down, right and left. Try to score points by running over the dots on the 
track. Watch out for the crusher — if you crash you lose a car. Four cars and 
bonus levels. Full color graphics and sound. Fast action and very addicting. 9 
levels of play. 

SNAKEOUT — Blocks appear on the screen at random. You move up, 
down, right and left and try to move your snake over the blocks. Each block 
that you get raises your score. Keep building your score but watch out 
because the escape routes keep getting smaller. Time limit, color graphics 
and sound. 3 games on this cassette. Snakeout — 2 player Snakeout and 
Trapper. 9 Levels of Play. 

TARGET COMMAND — Move your laser into position and get ready for 
some quick action. Different types of missiles are dropping. How many can 
you shoot down. They all travel at different speeds and different levels. You 
must be fast on the trigger to gel them all. Time limit, bonus points and very 
addicting. Color graphics and sound. Arcade style fun. 10 levels. 



RUNS IN STANDARD V1C-20 




SOFTWARE FROM 

COMPUTERMAT 

WILL TURN YOUR 
VIC-PET-CBM INTO A 



$12.95 Each 



HOME ARCADE! 

A£>D $1.00 FOR SHIPPING AND HANDLING WE WELCOME YOUR PERSONAL CHECK 



Commander January 1983 35 



Assembly Language Programming on the VIC-20 
Part II: Assemblers and Monitors 



by Eric Giguere 
Alberta, Canada 



In last month's article I introduced 
you to three new concepts: binary 
numbers, machine language, and as- 
sembly language. This month we are 
going to look at an integral part of as- 
sembly language programming: as- 
semblers and monitors. But before I 
get to either of these, which are very 
necessary for serious programming, 
I'm going to introduce you to another 
new numbering system. That's right, 
I said another one. So hold on to your 
hats and get ready to learn the hexa- 
decimal numbering system. 

Hexadecimal 

If you remember last month's article, 
you'll recall how I said that binary num- 
bers were simply numbers represent- 
ed in base two, as opposed to deci- 
mal's (our system) base ten. Hexadeci- 
mal, then, IS simply a base sixteen 
numbering system, with sixteen digits 
used to represent the decimal num- 
bers to 15, just as binary uses the 
two digits and 1 to represent decimal 
and 1. But hold on there: decimal 
has only ten digits— to 9. So how are 
you supposed to represent hexadeci- 
mal's sixteen digits with only ten? 
Easy— we don't. Instead, we borrow a 
few letters (A to F) from the alphabet 
and use them to represent the six di- 
gits after 9. This means that the sym- 
bol A equals 10 in decimal, and that 
B equals 1 1 . Following is a list of the 
hexadecimal (also called hex for short) 
digits and their representative decimal 
numbers: 



Hex 


Decimal 








2 


2 


3 


3 


4 


4 


5 


5 


6 


6 


7 


7 



8 


8 


9 


9 


A 


10 


B 


11 


C 


12 


D 


13 


E 


14 


F 


15 



36 Commander January 1983 



As you can see, the first ten digits 
(0-9) are the same, but then the letters 
A to F are used to symbolize the 
decimal numbers 1 1 to 1 5. What hap- 
pens when you get to 16 in decimal 
though? It's just like in binary, how 
when you add one to 1, you move 
over one place to the left and place a 
1 there, with a zero following. In hex 
this only happens when you add one 
to F (15) to make it 10 hex. Watch it, 
though, because 10 in hex means 16 
in decimal, not ten. This is probably 
one of the most confusing parts of lear- 
ning hex, so figure 1 explains it in more 
detail if you don't quite understand it. 
Also, to be able to distinguish between 
hexadecimal, binary and decimal 
numbers, the following symbols will be 
used.: 

$ - hexadecimal ex.: $2F 

% - binary ex: %1 01 10011 

nothing for decimal ex.: 21 

Note that if there aren't any symbols 
in front of the number, then it is consid- 
ered to be decimal. (By the way, these 
are the industry standards for repre- 
senting bases.) So whenever you see 
a number preceded by the "$" sign, 
consider it to be hex; if it's preceded 
by the "%" symbol, it means that the 
following number is in binary (usually 
recognizable by the long string of 1 's 
and O's); and if it isn't preceded by 
anything then consider it to be 
decimal. 

Now that we've learned how the 
hexadecimal numbering system 



works, perhaps we should discuss 
why we had to learn it. I mean, it's no 
use to learn a new numbering system 
if we won't use it. So let's do that. Now 
then, of what use do you think hex is? 
Do you see any advantage as to repre- 
senting a number like 32 as $20 hex? 
If you do, then you're one smart cook- 
ie. First of all, there is convenience. Af- 
ter all, the most a byte can hold, 255, 
can be shown as $FF. Also, the largest 
address the VIC or PET can access, 
65535, can be represented as $FFFF 
(if you don't know why then refer to fig- 
ure 2). Why use decimal if hex can cut 
down the digits used? Secondly, and 
more importantly, each digit in a hexa- 
decimal number represents four bits of 
a byte. That is, each hex digit repre- 
sents half of a byte. To see how this 
works, let's convert the number $0F 
to binary. This done, we see that it is 
shown as %00001 111. Now let's do 
the same for the number $F0, and we 
come up with %1 11 10000. Notice 
how $0F (15) takes up the rightmost 
half of a byte (which is eight bits) and 
the number $F0 (240) takes up the 
leftmost half. If we combined the two 
numbers, would the whole byte be fil- 
led? Let's try it: $FO + $OF = $FF = 
255 = %1 1 1 1 1 1 1 1 . We were right! The 
whole byte got filled up. It's the same 
thing with any other hex number, even 
$00 (both halves of the byte are filled 
with zeros, so the whole thing comes 
out to equal zero). That is the real rea- 
son behind using the hexadecimal 
system. It's simply easier for the com- 
puter to translate the numbers than if 
they were in decimal. And though you 
may not find it very useful now, as you 
progress you will find it extremely 
handy. 

Note: For those of you that would 
like a conversion table for all three 
bases (binary, hex and decimal) I'm 
making one available that also in- 



dudes methods for converting from 
one base to another without using a 
table. To receive the table, send your 
name and address along with $1.50 
to the address at the end of the arti- 
cle. If you also have some questions 
you'd like answered or suggestions 
and comments for the column, Hi try 
to answer them either in a personal 
reply or as part of the column. 

Monitors 

Well, we're finally finished with the 
topic of the hexadecimal numbering 
system, so it's time that we get along 
with the main thrust of this month's ar- 
ticle. And that brings us to monitors. 
Just what exactly are monitors? As you 
should be able to guess, monitors are 
used to monitor the insides of your 
computer. Monitors are probably the 
most basic tools you can use to pro- 
gram in assembly language, apart 
from using POKE statements from 
BASIC. This is because a monitor on- 
ly lets you enter numbers and to only 
see numbers. So really, all a monitor 
lets you do is to program in machine 
language, entering the hex numbers 
that represent your assembly 
language program. So a monitor real- 
ly sound basic, and it is, although it 
can be quite useful at times. 

Monitors have a basic set of com- 
mands that allow you to do several 
things. The most basic ones that you 
will ever find are M,S,L,G,R and X. 
These one-letter commands allow you 
to display and change memory (M); 
save memory to tape or disk (S); load 
a program (memory) from tape or disk 
(L); goto (execute) a machine/as- 
sembly language program in memory 
(G); display the registers (R); and exit 
monitor to BASIC (X). These com- 
mands are pretty well obvious and 
need no real definition (we'll learn 
about the R command next month), 
and are used by aJI the monitors I have 
seen. You can also get what is called 
an extended monitor. This is the bas- 
ic monitor I have described here plus 
some enhancements, such as Hunt, 
which goes through memory checking 
for all occurrences of a certain byte, 
or Transfer, which transfers memory 
from one location to another. An ex- 
ample of such a monitor that has all 



these extended functions is the VIC- 
MON Machine Language cartridge 
sold by Commodore. It provides a lot 
of useful commands for the assembly 
language enthusiast at a reasonable 
price. A note for all you PET owners: 
all PETs except one^ with Original 
ROMs in them have a built-in monitor 
with the basic commands. It is access- 
ed by typing SYS 1024 from BASIC. 
Unfortunately for all you VIC owners 
out there, your VIC has no such toy 
built in. You have to buy one, either on 
tape or on cartridge. Any programs 
that I present in this column if monitor 
form will be usable by any monitor, so 
go ahead and buy the one that you 
like, because it shouldn't make any dif- 
ference. All monitors are basically the 
same. 



Assemblers 

I mentioned that a monitor was a ba- 
sic tool, really useful only for small pro- 
grams or for programming in pure 
machine language. For the real ser- 
ious programmer, though, only one 
thing is acceptable: an assembler. 

An assembler is a program of sorts 
that lets you type in your assembly lan- 
guage program in mnemonic form in- 
stead of having to convert each in- 
struction to numeral form and then 
place it into memory using the monitor. 
Mnemonic, you will recall, is a word 
that means "memory jogger", and ref- 
ers to the three-letter instructions call- 
ed opcodes (short for operation code) 
that tell the computer's CPU (central 
processing unit) what to do next. They 
are called mnemonics in that it is easy 
to infer their meaning just by looking 
at them. For example, the operation 
"load the accumulator with a specified 
byte" is shown as LDA in assembly 
language and as $A9 in machine lan- 
guage. If you had to work for a while 
with assembly language, wouldn't you 
want to use the assembler where you 
could type in relevent things such as 
LDA and STA instead of just numbers? 
I mean, after a while all those SFF's 
and $EF's will start to look alike, and 
you'll have a hard time trying to debug 
your program, so that's the first ad- 
vantage that assemblers have over 
monitors. 

The second advantage is that as- 



semblers make it easy to document 
and update a program. You can put 
in labels and comments throughout 
your program to make it meaningful 
and easier to figure out when you take 
it out one day again and try to make 
some sense out of it. The use of labels 
IS really helpful. Labels are sort of like 
line numbers in BASIC, except that 
they refer to memory addresses in- 
stead. You can define a label such as 
"L00P1 " to refer to the address 41 23. 
You can also use labels as reference 
points inside the program itself. You 
see, an assembler usually has four 
fields, or areas in which to enter your 
program. The first field is called the la- 
bel field, and is where you place the 
label that you have chosen to repre- 
sent that part of the program. That lab- 
el will then refer to the address of the 
mnemonic following label in the 
mnemonic field. Then whenever you 
want to go to that part of the program, 
you just put in a JMP (jump) instruc- 
tion followed by the label of the area 
you want to go to. See figure 3 for an 
example. 

Following the label field is the 
mnemonic field. This is the part in the 
line where you enter the opcode you 
want executed. All the codes in this 
field must have three letters, otherwise 
they are illegal, because all opcodes 
used by the computer are represented 
as three-letter codes. It's that simple. 
Now, following the mnemonic field is 
the operand field. In this field the as- 
sembler is given the instructions as to 
where to find the data that the opcode 
might need. For example, if you tell the 
computer to JSR (jump to subroutine), 
it has to know where the subroutine is. 
So what you actually code in is: JSR 
R0UTINE1 . This will tell the computer 
to go to the subroutine specified by the 
label R0UTINE1. It's just tike in a 
BASIC GOTO or GOSUB statement. If 
you don't tell the computer which line 
number to go to, it will return to you 
with a 7UNDEFINED LINE NUMBER 
error. So the operand field is definite- 
ly an important one. 

Last and least is the comment field. 
This field is of no use to the assembler. 
Ail it is is a place for you to place your 
comments as to what this piece of 
code does or whatever. The important 

Commander January 1983 37 



thing to remember is that it is optional 
and does nothing for your program ex- 
cept take up memory. On the other 
hand, there are those who say it is in- 
dispensable because it makes for 
good documentation. Feel free to use 
it as you wish. 

Whew! I think I'm getting a little too 
complicated. If you didn't quite under- 
stand what I was talking about, don't 
feel bad. It will all be clear to you as 
you progress. Suffice it to say that an 
assembler makes for easy assembly 
language programming, way easier 
than doing it by hand on paper and 
then converting the mnemonics to the 
right numbers. But for us VIC owners 
there is one problem: I've yet to see 
an assembler on the market for the 
VIC. Those of you with PETs have 
plenty of choices in this area (although 
they are all quite expensive), but us 
VICers have none. That is why I hope 
to be publishing my own assembler in 
BASIC soon. It will require a VIC with 
at least 8K, and perhaps even a disk 
drive, but for those of us who are ser- 
ious in programming assembly langu- 
age, it will be better than a monitor, 
that's for sure. 



Figure 1: Notes on the Hexadecimal 
Numbering System— 

In hexadecimal, you count just as 
you would in decimal, but instead of 
going 8, 9, 10, you go 8, 9, A, B, C, 
D, E, F, 10. There are six extra digits 
between the 9 and the 10. So each 
times you count to 1 in hexadecimal, 
you are actually counting to 16 in 
decimal. That is why hexadecimal is 
known as base sixteen, because your 
numbers are based on sixteen, not 
ten. The effect of this is that you have 
to count up to fifteen (F) each time 
before you "rollover" the digit. That is, 
when you get to the F digit, you add 
1 to the next digit on the left and place 
a zero in place of the F. This 
happens in decimal, but only after 
you've counted up to nine, to get the 
decimal digits 10. To demonstrate this 
fact, let's count up to 20 in decimal: 
1,2,3,4,5,6,7,8,9, 10, 11, 12, 13, 
38 Commander January 1983 



14, 15, 16, 17, 18, 19, 20. 

Each time the ones digit (the 
rightmost one) reaches nine, you add 
one to the digit on the left and clear 
the ones digit by placing a zero in it. 
This also works in hexadecimal, so 
let's count to 20 in that system: 1, 2, 
3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 10, 
11, 12, 13, 14, 15, 16, 17, 18. 19, la, 
lb, 1c, Id, 1e, If, 20. 

You see? Each time you reach the 
letter F you clear it and add one to the 
digit on the left. But this time you had 
to add one thirty-two times before you 
got to 20. This means that 20 in hex- 
adecimal actually represents 32 in 
decimal. Isn't that wonderful? (Actual- 
ly, if you want a quick and sneaky way 
of converting hexadecimal to decimal, 
take the right digit and add it to the left 
digit which you multiply by 16. Ex.: 
2A = 2*16 + A = 32+10 = 42.) 



Figure 2: Numeral Positions and 
Powers of Sixteen 

In hexadecimal, as in decimal and 
any other numbering system, the po- 
sition of a digit is as significant as its 
value. In other words, the decimal 
number 10 is only different from 1 in 
that the position of the former is one 
place to the left more than the latter, 
and is thus worth ten times more its 
value. So basically, a digit represents 
a number equal to the digit's value 
multiplied by its base to the power of 
its position within the numeral. To put 
it another way, let us take the number 
154 in decimal. To finds its value we 
would do the following: 

1 x102 = 1x100 = 100 
5x101 = 5x10 = 50 
4x 100 = 4x1 =4 
Total 154 

You see, what we did was take each 
number and multiply it by its base rais- 
ed to a power that depended upon the 
digit's position. So for the digit 4 we 
multiplied it by 10° (the first position in 
a number is always referred to as the 
zero position) to get 4. The 5 was 
multiplied by 10^ to get 50, and so on. 
Now then, this method doesn't just 
work with decimal. It works with any 



numbering system, including hex. So, 

to find the hex number $FFFF, we 

would do the following: 
Fx163=15x4096 = 61440 
Fx162=15x256 = 3840 
Fx16i = 15x16 = 240 
Fx16o=15x1 = 15 

Total 65535 

And that's basically how you convert 

from hex to decimal. 

Figure 3: Using Assembler Fields 

An assembler has what is called four 
fields, or areas on a line that serve a 
different task. Something placed in 
one field will not work the same in 
another; they all have specific uses. 
The four fields go by the names Label 
Field, Mnemonic Field, Operand Field, 
and Comment Field. Each serves a 
specific purpose, as outlined below. 

1) Label Field: This field is used to 
refer to a certain part of the program. 
It's sort of like line numbers in BASIC, . 
but instead of line numbers you use 
letters or words. Its use is optional, but 
if you refer to a part of the program that 
you don't define, then your program 
could very well crash. 

2) Mnemonic Field: This field is the 
most important. In here you place your 
instructions in mnemonic form. No op- 
tions on this one. 

3) Operand Field: This field is also 
very important. In in you give the com- 
puter the information as to where to 



Next Month . . . 

Well we sure learned a lot today 
(maybe too much!), and next month 
promises to be the same. The topic for 
next month's column should Interest 
you. It's called "Registers and Ad- 
dressing Modes" and is our first real 
leap into assembly language. In the 
meantime, if you get really interested 
about assembly language and can't 
wait to get my column each month, I 
suggest you get yourself a book or two 
on assembly language. It could prove 
very interesting. 

For those of you who wish to con- 
tact me, my address is: Eric Giguere, 
Box 901, Peace River, Alberta, 
Canada TOH 2X0. 



find the data it needs (as specified by 
the instruction in the mnemonic field). 
This data may be the label you gave 
to a specific part of the program, or it 



may simply be a number. 

4) Comment Field: Totally optional, 
this field is reserved for you to enter 
comments to clarify the program. The 



assembler program completely ig- 
nores it. 

Following are five lines of codes as 
could be entered on an assembler: 



Label Field Mnemonic Field Operand Field 

START LDA #0 

STA STORAGE 

NOP 

NOP 

END RTS 



Comment Field 

Start loop 

Store a value at the 

location specified 

by the label STORAGE 

return from subroutine 



As you can see, the label fields were used only twice, as were the operand 
fields. The mnemonic NOP stands for a "No operation" and the computer just 
skips over it (sort of like a BASIC REM). Later on in the program we could call 
this subroutine by using its label as follows: 



CALL 



JSR 



START 



;GOSUB to START 



So you see, assembly language programming is made much easier by us- 
ing assemblers. After you were finished typing in your program, the assembler 
would take it, convert the mnemonics and operands into numbers and then 
place them on disk or tape, or even in memory. Following that they can be 
loaded back into memory and executed. 



Introducing The \ k J / ^^ ^t 

FININCIALW^W 



Diskette Programs for 16K PET/CBM 




^ Financial Programs 



The Wizard helps you quickly calculate 12 maior types 
of Financial Transactions with ease and accuracy 

Created for businesses and individuals, this DISK 
PACKAGE has 9 programs plus instructions. The Wizard 
delivers answers on the screen or printer. 



CASCADE COMPUTERWARE 

Box 23S4 * Ev«ren, WA 96203 



(206) 355-6121 

Dealer inquiries invited 




Commander January 1983 39 



USCD PASCAL for the Commodore 8096 

by Neil Omvedt 



If you read the hype about UCSD 
Pascal you might decide it is all good 
or all bad. What the pro's say is that 
it will force structured programming 
and that it is transportable from 
machine to machine. The major argu- 
ments against it are lack of input- 
output facilities and difficulty of 
learning. 

My background in programming 
was heavily in PLI, a language that 
allows structured programming. So I 
decided to try out USCD Pascal to see 
if it could fulfill my needs. Before I got 
the product I did some reading and 
tried to write programs. It seemed like 
a cinch to go from PLI to Pascal, but 
later it turned out this was not quite so 
true. 

The system is very complete. When 
you first load the program you get a 
prompt line which asks you what you 
want to do. The facilities available in- 
clude the editor, the filer (for keeping 
track of data and program files), the 
compiler, the assembler, the program 
execution facilities and the linker. One 
thing you have to get used to is that 
it takes sometime for the system to 
switch back and forth between the 
various facilities. It is no worse than 
timesharing, but it is very predictable. 

The editor is a very good screen 
editor and it allows you to do just about 
any editing you want. It takes a while 
to get used to, but it seemed fairly 
straight forward. My major problem 
was learning that you couldn't straight 
out edit on the screen, but had to 
choose one of the editor commands 
before you could do something. One 
shortcoming is that there is no help 
facility on the screen. You definitely 
have to refer to the manuals. 

The documentation of the system is 
impressive. Almost 500 pages of 
manual. However most of the 
documentation relates to the UCSD p- 
system (the term for the total system). 
The documentation of Pascal is lack- 

40 Commander January 1983 



ing, except for differences between 
UCSD Pascal and standard Pascal. 
You definitely need other books to 
learn the language. Certain areas are 
lacking. I could find no straight forward 
explanation of how to use both the 
screen and a printer for output in the 
same program. I still don't know if 
there is a straight forward way to do 
this. This to me is not a small item since 
in an interactive environment this be- 
comes important. 

The last part of the documentation 
IS about 10 pages from Commodore 
as to the use of the system. While it 
was enough to tell me how to setup my 
ASCII (read non-Commodore) printer 
for use with the system I have a feel- 
ing that more should be provided 
here. 

With regards to Pascal itself the 
language syntax is very strict. All vari- 
ables must be declared as to type (in- 
teger, real, string, etc.— you can even 
make your own types). I personally 
don't find this a problem, but beware 
if you are used to not declaring 
variables (as in BASIC), some of the 
syntax requirements I found difficult 
such as in the IF-THEN-ELSE clause. 
You do not use a terminator (a semi- 
colon which marks the end of a state- 
ment) until after the else clause. Also 
a comparison such as "IF A = 3 or 
C = 5" is not valid. There must be par- 
entheses around the subexpressions: 
"IF (A = 3) or (C = 5)" is the way it must 
be written. Suffice it to say that it is tak- 
ing much more than the three days I 
took to go from FORTRAN to BASIC 
to make the change from PLI to 
Pascal. 

I did run a small program to test ex- 
ecution time. Normally one would ex- 
pect the Pascal to be considerably 
faster than BASIC because it is a com- 
piled language. However, there is one 
hook in this. The UCSD Pascal system 
uses a pseudo-interpretr to translate 
the compiled code to use the 6502 



CPU unit. This slows USCD Pascal 
down somewhat. My one test was a 
program to cube all the numbers from 
1 to 10,000. The program took about 
one minute to run in Pascal and about 
one minute and twenty seconds to run 
in BASIC. 

One other area of interest was the 
use of disk files. The first thing I found 
out was that the Pascal disk files are 
not compatible with BASIC. The 
Pascal defines three large files on the 
8050 disk drives, and everything is In- 
ternal to it. Thus a program datafile 
cannot easily be accessed from 
BASIC. There is probably some way 
around this, but it is not obviously 
easy. 

All in all I am not ready to return my 
UCSD Pascal, but I don't find it quite 
as capable as I expected. 



"■••'CQiUPU SEI\l$Ei:. 

CARDBOARD 3 

An Economy Expansion Interface 
(Motherboard) 

For the VIC-20® Personal 
Computer 

The ■■CARDBOARD/3" is an expansion inter- i 
face designed to allow the user to access more ] 
than one of the plug-in-type memory or utility 
cartridges now available. It will accept up to 3 , 
RAM or ROM cartridges at once. For example 

• 16k RAM ^ 16k RAM + 3k RAM 

• 16k RAM ^ 8k RAM + Super Expander 

• 16k RAM * 8k RAM + Vic-Mon 

• 16k RAM + 3k RAM + Programmers Aid 

• High quality T.R.W. gold plated connectors 

• This board is fused 

• 90 day free replacement warranty covering ' 
everything except the fuse 

$39.95 

CARDBOARD 6 

An Expansion Interface for VIC-20® 

• Allows memory expansion up to 40K 

• Accepts up to six games 

• Includes a system reset button 

• All slots are switch selectable 

• Daisy cham several units for even more 



versatility 



$87.95 



TO ORDER: 
P. O. BOX 18765 
WICHITA, KS 67218 
(316) 684-4660 

Personal checks accepted 

(Allow 3 weeks) or 

C.O.D. (Add $2) 

Handling charge $2.00 

VIC-20- is a registered trademark of Commodore 




^ 



Peek & Poke 

by George R. Gaukel 
Tacoma, Washington 

Sound Interface Device (SID) 



The preliminary version of the ad- 
vanced programer's manual for the 64 
contains a lot of technical data on the 
SID. However, it gave few practical 
examples. 

Due to popular demand, the listing 
for 'SOUNDER' follows. This is a 
BASIC program for exercising the SID 
and developing sound effects. The 
listing contains a few comments, as 
this was originally an exercise in menu 
management and interactive learning 
of the SID capabilities. 

The program contains two displays, 
the main menu and the data menu. 
The main menu is a derivative of the 
proposed sound monitor menu in the 
preliminary manual. A second display 
was added after I determined that the 
original projection was not providing 
useful programing values. The 'LEFT- 
ARROW will switch from one display 
to another. All main menu commands 
can be used while viewing the data 
menu. 

Table 1 contains a list of the com- 
mands available. Many of the com- 
mands set a bit or nibble (4 bits). The 
combined byte (8 bits) can be deter- 
mined by looking at the date display. 

To get started with 'SOUNDER', 
enter the following: 
SET'V TO 15 (VOL MAX) 
SET 'G' TO 1 (GATE ON) 
SET 'S' TO 15 (SUSTAIN) 
SET 'r TO 1 (TRIANGLE) 
SET 'P TO 10.000 (FREQUENCY) 

Now enter 'F7'. A tone will sound 
and will stay on uritil 'K'-Kill is entered. 
Set 'N'-Loop to 400 and enter 'F7'. 
Now the tone is killed after a delay. 



When 'F7' is entered, the SID will cy- G 

cte through the attack, decay and sus- A 

tain modes. The release mode is not D 

entered until the gate is cleared/killed. S 

The keyboard input routine in the R 

listing is a highly modified version of Y 

the cursor™ magazine input M 

routine which they kindly placed the I 

public domain. 1 

I have found the 'SOUNDER' pro- 2 
gram useful in learning most of the 

capabilities of the SID and a time-saver 3 

in developing sound effects for other 4 

programs. 

TABLE 1 N 
SOUNDER COMMANDS 

F1 Voice 1 Current Voice E 

F3 Voice 2 Current Voice C 

F5 Voice 3 Current Voice L 

V Set Volume 0-15 B 

F Set Current Voice Frequency H 

0-65535 X 

P Set Current Voice Pulse Width F7 

0-65535 F7 



Set Current Gate ON/OFF 

Set Current Attack 0-15 

Set Current Decay 0-15 

Set Current Sustain 0-15 

Set Current Release 0-15 

Set Current Sync 0-15 

Set Current Ring Mod 0-15 

Set Current Filter ON/OFF 

Select Triangle For Current Voice 

Select Sawtooth For Current 

Voice 

Select Pulse For Current Voice 

Select Noise for Current Voice 

Voice 3 ON/OFF (Combined 

Output) 

Delay Loop for Kill (lf = Voice 

Stays On) 

Resonance Factor 0-15 

Active Filter Cutoff Factor 0491 51 

LO Pass Filter ON/OFF 

Band-Pass Filter ON/OFF 

Hi-Pass Filter ON/OFF 

External Voice Filter ON/OFF 

Sound Voices (Write Latches) 

Kill Voices (Clear Latches 



100 


REM 'SOUNDEFr 


no 


PR I NTCHR* (147) s BDT03000 


120 


s 


130 


HL=HXAND15: HH= (HXAND240) / 16 


140 


HP$--MID$ (HX*, HH+1 , 1 ) +MID* (HX$, HL+1 , 1 ) 


150 


RETURN 


160 


! 


170 


POKE RX,YY:PQKE RY,0:POKE RP,0 


180 


SYS CUs RETURN 


190 


m 


200 


POKE RXjYYsPOKE RY, XX: POKE RP,0 


210 


SYS CUs RETURN 


220 





Commander January 1983 41 



230 
240 
250 
260 
270 
280 



290 
3^00 
310 

320 
330 
340 
350 
360 
370 
380 
390 
400 
410 
420 
430 
440 



450 
460 
470 
480 
490 
500 
510 
520 
530 
540 
550 
560 
570 
580 
590 
600 
610 
620 
630 
640 
650 
660 

670 
680 
690 
700 



G0SUB3570S eOSUB3500: G0SUE:i3410 
RETURN 

IF hU THEN230 
YY=lsC30SUB170 
PR 1 NT " VOICE ([; R VS-ON 3 F 1 L R VS- 



CRVS-0N;JF5:RVS-0FF: ) " VO•' 
GHT*(STR*(VE) ,2) 

RETURN 



•OFF :} L RVB-ON 11 F3 11 R VS--OFF I 
t R VS-ON ;i V C R VS -OFF 3 OLUME s " R I 



PR I NT " L RVS-ON 1 F L RVS--OFF 3 REQ " BL*BL* " L RVS-ON 1 P 

CRVS-0FF3~WIDTH" 

RETURN 

IFMUTHEN230 

I=VO! YY"»4+V0--1 ! G0SUB170 
PRINTRIGHT* (BL*+STR* (FR ( I ) ) , 5) ; 
HX=SI <I,FH) :GOSUB 130 SPRINT" $"HP*5 
HX^=SI ( I , FL) s G0SUB130S PRINTHP*; 
PRINTBL*RIGHT$ (BL*+STR* <PW < I ) ) , 6) 5 
HX=S I ( 1 , PH ) II GOSUB 1 30 11 PR I NT " * " [{9% 5 
HX=SI (I, PL) :G0SUB130:PRINTHP* 
RETURN 

H 

n 

PR I NT " t: RVS-ON ;] G Z RVS -OFF :i T C RVS-ON .1 A t RVS-OFF 1 T 11 R Vi3-0N 1 
DCRVS--0FF3E ERVS--0N3GI:RVS-0FF]U C RVS-ON 3 RC RVS-OFF ]L S 
t R VS~ON 1 Y [; RVS-OFF 3 C R VS--ON 3 M 11 RVS-OFF 30 F L RVS~ON 3 I 
C RVS-OFF 3 TCRVS~ON31CRVS-OFF3 SC RVS-ON 3 211 RVS-OFF 3 P 
C RVS-ON 3 3 C RVS-OFF 3 N C RVS-ON 3 4 C RVS-OFF 3 " ; 
RETURN 



IFMUTHEN 

I=VO:YY= 

PRINT 

PRINT 

PRl'lMT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

RETURN 



230 

9+VO-l 

"RIGHT* 

"RI6HT$ 

" RIGHT $ 

"RIGHT$ 

"RIGHT* 

"RIGHT* 

"RIGHT* 

"RIGHT* 

"RIGHT* 

"RIGHT* 

"RIGHT* 

"RIGHT* 



GOSUB 
(STR* 
(STR* 
<STR* 
< STR* 
(STR* 
<STR* 
<STR* 
<STR* 
(STR* 
(STR* 
(STR* 
(STR* 



170 

(GA(I) ) 
( AT ( I ) ) 
( DE ( I ) ) 
(SU(I) ) 
(RL(I) ) 
(SY(I) ) 
( MO ( I ) ) 
( F I ( I ) ) 
( WT ( I ) ) 
(WS(I) ) 
(WP(I) ) 
(WN(I) ) 



,2) 

,2) 

,2) 

,2) 

,2) 

2) 

2) 

2) 

2) 

2) 

2) 



IFMUTHEN230 
YY=13:G0SUB170 
PRINT" VOICE-3 



PRINT" 

SD) ,5) 

RETURN 

I 

IFMUTHEN230 

YY=--1 5 s GOSUB 170 



C RVS-ON 3 C RVS-OFF 3 UT s " OT ; 

tRVS-ON3NERVS'-OFF3EXT LOOP: "RIGHT* (BL*+STR* ( 



42 Commander January 1 983 



710 
720 
730 
740 
750 
760 

770 
780 
790 

aoo 

810 



320 
830 
840 
850 
860 

870 
880 
890 
900 
910 
920 

930 
940 
950 
960 
970 



F-R I NT " R i: R VS--ON H E L RVS-OFF ll SONANCE : " R 1 GHT* ( STR* ( RE ) , 2 ) 
RETURN 



■OFF :i T I VE F I LTER : " R I (3HT« ( BLili+STR* ( 



]:FhlJTHEI\l230 
YY=17!G0SUB170 

PRINT" acrvs-on:iccrvs- 

CF) ,5) 
RETURN 

■ 
m 

IFMUTHEN230 

YY=19!G0SUB170 

PRINT" FILTER SW". tRVS-ON3Lr:RVS~OFF30: "LO 



CRVS-0FF3P; "BP 
CRVB--Of"F:i: "XT 
RETURN 



L RVS~ON 3 H C RVS-OFF 3 I : " H I 



' CRVS- 
ECRVS" 



0N3B 
•0N3X 



1FMUTHEN230 
YY==21:GGSUB170 

PRINT " i:rvs-on;if7i:rvs- 

r RVS-OFF DILL " i| 
RETURN 



■GFF:I SOUNDER 



LRVS--DNDK 



P0KE5: 
IN*=" 
GETZ*: 
IF ZT-^ 



2S0,7-H-N0T MU 

" : ZT^-=TI s ZC=2: ZD*=CHR* (20) 

IF 2$<>""THEN940 

=TITHENPRINTMIDiti< 



t \ + D " ,, ZC, 1) 5 " i::CR£)R--LEFTr 



ZC~ 



3-ZC: ZT=TI-i-15 

G0Ta9i0 

Z=ASC(Z$) !ZL=LEN(IN$) 

IFZKTHENIF ( Z >132ANDZ< 141 ) THEN1020 

I F ( Z AND 1 27 ) < 32THENPR INT" [ CRSR-LEFT 1 



GOTO 1000 



IFZXAND(ZAND127) >64AND (ZAND127) <91THENZ*=CHR* < (Z^-128>AN 



980 IFZL>9THENZ=141:G0T01030 

990 IN*=IN*+Z*:PRINTZ*5ZD*;Z*; 

lOOO IFZ=13THENIN*=MID*(IN*,2) : GOTO 1050 

1010 IFZ=20ANDZL>1THENIN*=LEFT*<IN*,ZL-1) : PRINT" C CRSR-LEFT D 

" ; : G0T09 1 O 
1020 iFZKTHENIN*=Z*! G0T01050 
1030 IFZ--141THENZ*=CHR*(-20* (ZL>1) ) s F0RZ~2T0ZL: PRINTZ*; sNEX 

TZ:G0T0990 
1040 G0T0910 

1050 Z*=CHR* (-20* <ZL>1 > > : F0RZ=2T0ZL: PRINTZ*; : NEXTZ : RETURN 
1060 ! 
1070 
1080 
1090 
1100 
1110 
1120 
1130 
1140 
1150 
1160 
1170 
1180 
1190 



XX=20:YY=2H-(2*ABS(MU>> s G0SUB200 

ZK=lsG0SUB900 

IV=VAL(IN*) :IFIN*=""THENIA=0sG0T01120 

I F I N*= " " THEN I A=0 s GOTO 1 1 20 

IA=ASC(IN*) 

ZK=0!PRINT" ";!RETURN 

: 

P0KE53280,7+N0T MU 

PRINTPM*; 

PRINTRIGHT*(STRili(VT) ,2) ; 

PRINTZP*; 

GET I N* : I F I N*= " " THEN 1 1 80 

IV=VAL ( IN*) ! IA=:ASC (IN*) 



Commander January 1983 43 



200 
2 1 
220 
230 
240 
250 
260 
270 
280 
290 
300 

3 :l. 
320 
330 
340 
350 
360 
370 
38 
390 
400 
4 1. 
420 
430 
440 
450 
460 
470 

4 GO 
490 
1300 
5 1 
520 
530 
540 
550 
560 
570 
580 
590 
600 
610 
620 
630 
640 
650 
660 
670 
680 
690 
700 
7 1 
720 
730 
740 
750 



IF :i:A:^:^^:I.3 them :l.260 
IF IN*=--="i"THEIMVT^=^VH-i 
I F I m>- " - " THENVT-VT- 1 
IF V1-<0rHENVT=-'=0 
:i: F VT >LMTHENVT===LM 
VT== I NT ( VT ) : GOTO 1 1 50 
F'RIIMT" "! 
RETURN 



F^'EEM* >|( f^^'^^ttiil^iil^tiil^^ttt^ilf'^tit^^ 



PRINT' 
IF MU 
GOBUB 

B 
M 

IF NOT' 
IF MU 
GDSI.JB 



HDMErj 



THEN 
32:1.0 



G0SUB3340! GOTO 1370 



MU THEN 
THEN POK 
1070 



P(:)KE53280, 14! pokes; 
E53280-3:P0KE53281 



281,, 6 s PR TNT CHR* (5) 
7!PR1NTCHR*<149) s 



I F 
IF 

II 
II 

IF 
IF 
IF 
IF 



TA=95 THEN MU==NOT 
IA<12aTHEN1630 



MU s PR 1 NT " C CLR 3 " : GOTO 1 330 



1 A= 1 33THENV0~ 1 s G0SUB260 
I A= 1 34THENV0=2 : G0SUB260 
1 A==-- 1 35THEN V0==3 s G0SUB260 
IAO136THEN1370 



I=^1T03:F0RII^1T07 
~M5THEN1560 

SM<I,, II) ,, SI (I, II) 
sNEXT 
= 1 T03 : POKESM ( I , M5 ) . S Id, Ml 



POKE. 00 ,, QL. 

POKE ai,QH 

POKE FV , FS 

POKE PV,PW 

FOR 

IFII 

POKE 

NEXT 

FORI 

NEXT 

IF SD=0 THEN 1370 

FOR II== ITO SDsNEXT 

GOTO 1B20 s REM KILL 



IF IV =0 THEN 1740 

IF <IV<1 OR IV>4)THEN 1370 

WT(V0)^'^^^O!WS<VO)=O 

WP <V0 )■■■-•= 0:WN(VO)^^^0 

I F I V = 1 T H E N I V ■^■- 1 6 ! W T < V ) -- 1 

IF IV -'^■■- 2. T H E N I V '-^ 3 2 s W S < V ) = 1 

I F I V=:=3THEN I V=64 : WP < VG ) == 1 

I F I V=^4THEN I V.-^^^ 1 28 s WN < VO ) === 1 

S I < VO , CN ) =S I < VO , CN ) AND 1 50R I V 

G0SUB470 : GOTO 1 370 



IF 
ON 



IA<65 
IA~64 



2520, 1370 



OR IA>90 THEN 1370 

GOTO 1970, 2320, 2840, 2030, 2460, 2750, 1850, 



1350. 



44 Commander January 1983 



1. 760 DIM :i: A -74 GO ("0 :l, 820 ,, 22 :l. C) ,, 1 930 ,, 2970 , 2:.;80 , 266t:) ^ 1 370 , 2 1 50 , 
2090, 1370 

1770 ON :i:A-a4 goto 1370,2410, 1 370,, 2630,, is90, 1370 

1780 GOTO 1370 

1790 s 

1 800 REM **********;((*********** 

laio ! 

1 820 FOR :i; ^=^54272TG54296 s POKE I ,, ;; NEXT 

1830 GOTO 1370 

1840 : 

1 850 S 1 (. VO ,, CM ) =£> I ( VO , CN ) AIMD254 

1 860 I F G A ( VO ) =0 THEIMGA ( VO ) = 1 ! S I ( VC] , CN ) ■■=53 1 ( VO , CN ) OR 1 : GOSU 

B470: GOTO 1370 
1 870 GA ( VO ) -0 : G0SUB470 : GOTO 1 370 
1880 s 

1 890 S I ( VO , CN ) -S I ( VO , CN ) AND253 
1 900 IF S5 Y < VO ) ==0 THEN3Y < VO ) = 1 : S I ( VO ,, CN ) ~Q I ( VO , CN ) OR 2 : 60S 

LJB470S GOTO 1370 
1 9 1 SY ( VO ) =0 : G0SUB470 s GOTO 1 370 
1920 B 

1 930 8 1 < VO ,, CN ) -^--S 1 ( VO , CM ) AND25 1 
1940 I F MO ( VO ) =0 THEN MO ( VO ) = 1 : S I ( VO ,, CN ) =S I < VO , CN ) OR 4 s GOS 

UB470: GOTO 1370 
1 9150 MO ( VO ) •'=0 : G0SUB470 1 GOTO 1 370 
1960 5 

1 970 VT=--AT ( VO ) : LM= 1 5 
1980 GG8UB 1 140 
1990 AT(VO)~:VT 

2000 S I ( VO , DA ) ==S I ( VO , DA ) AND 1 50R ( VT * 1 6 ) 
20 1 G08UB470 : GOTO 1 370 
2020 s 

2030 VT=DE ( VD ) ! LM= 1 5 
2040 GOSUB 1140 
2050 DE(VO)""-^VT 

2060 SI ( VO, DA) ~SI (VO, DA) AND2400RVT 
2070 G0SUB470 : GOTO 1 370 
2080 s 

2090 VT==SU ( VO ) : LM== 1 5 
2100 GOSUB 1140 
2110 aU(VO)~"VT 

2120 SI <VG,RS)=SI <V0,RS)AND150R(VT*16) 
2 1 30 G0SUB470 s GOTO 1 370 
2140 s 

2 1 50 VT=RL ( VO ) s LM= 1 5 
2160 GOSUB 1140 
2170 RL(VO)==VT 

2 1 SO S 1 ( VO , RS ) =^=S 1 ( VO , RS ) AND2400RVT 
2 1 90 G0SIJB470 s GOTO 1 370 
2200 : 

2210 IF L0~0 THEN 1.0=^^1 s G0T02240 
2220 L0=0 
2230 s 

2240 PW=PWAND15 
2250 IF LO THEN PW=PW OR 16 
2260 IF BP THEN PW=PW OR 32 
2270 IF HI THEN PW"-^PW OR 64 
2280 IF OT THEN PW=PW OR 128 



Commander January 1983 45 



2290 
2300 
23:1.0 
2320 
2330 
2340 
2350 
2360 
2370 
2 380 
2390 
2400 
24 1 
2420 
2430 
2440 
2450 
2460 
2470 
2480 
2490 
2500 



2540 
2550 
2560 
2570 
2580 
2590 
2600 
2610 
2620 
2630 
2640 
2650 
2660 
2670 
2680 
2690 
2700 
27 1 
2720 
2730 
2740 
2750 
2760 
2770 
2780 
2790 
2800 
2810 
2820 
2830 
2840 
2850 



I F 1 N*- " " THEN II (;7(:)SUEi630 s GOTO 1 370 
GGSLJD790:G0T0 1370 

IF BP THEN BP =0!G0TO2240 
BP==lsG0T02240 

IF HI THEN HI =0:G0T02240 
HI--=l!GGT02240 

IF GT THEN OT ^^--^^O; G0T02240 
0T:^'--:l!G0T02240 

VT==-VE:LM=1S 

GOSIJB 1140 

VE==VT s PW--PWANi:)2400RVT 

G0SUB260 : GOTO 1 370 

VT^':=REsL.h"15 

G08UB 1140 

RE==^VT 

FS==FSAND 1 50R < VT * 1 6 ) 

G0SUB690 ! GOTO 1 370 

IF F I ( VO ) THEN F I ( VD ) =0 s G0T(D2550 
FI (V0)=1 

FS^=FS AND 240 

IF FI d) THEN FS^^FS OR 1 

IF FU2) THEN FS-'4-B OR 2 

IF FI(3) THEN FS==FS OR 4 

IF XT THEN FS=FS OR 8 

IF IN*=" I "THENG0SUB470S GOTO 1370 

G0S1JB790 : GOTO 1 370 

IF XT THEN XT:^0!G0T02550 
XT.^=liiG0TG2S50 

G0BIJB890S IV" I NT (VAL < IN*) ) 

IF IV >256--2- 1 THEN I V=--256--2- 1 

IF IV<0 THEN IV=0 

VT=IV:PW(V0)=IV 

SI <V0,PH)-INT<VT/256) 

IF SI (VO!,PH)<>OTHENVT=INT(VT-SI <V0,PH)*256) 

SI <VO,PL)==VT 

G0SUB340 1 GOTO 1 370 

GGSUB890 ! I V-- 1 NT ( VAL ( I N* ) ) 

IF IV >256'-2- 1 THEN I V=256 •••2- 1 

IF IV<0 THEN IV=0 

VT=IV:FR(VO)-~-IV 

SI < VO, FH) -INT ( VT/256) 

IF Sl'(VO,FH)<>OTHENVT=INT<VT-SI (V0,FH)*256) 

SI <VO,FL)"VT 

G0SUB340 : GOTO 1 370 

H 
H 

GOSUB S90 : I V-= I NT < VAL ( I N* ) ) 
IF IV>49151THEN IV=49151 



46 Commander January 1 983 



tr J, 



2860 
2870 
2S80 
2890 
2900 
2910 
2920 
2930 
2940 
2950 
29<!3 
2970 
2980 
2990 
3000 
3010 
3020 
3030 
Z'i040 

3050 
3060 
3070 
3080 
3090 
3100 
3 1 1 
3120 
3130 
3140 
3150 
3160 
3170 
3180 
3190 
3200 
3210 
3220 
3230 
3240 
3250 
3260 
3270 
3280 
3290 
3300 
3310 
3320 
3330 
3340 
3350 
3360 
3370 
3380 
3390 
3400 
3410 



IF ;i:v<o the:,n iv^^^o 

CF=I.V 

QH^:<I:MT(IV/256> 

IF QHOO THEN I V-INT ( IV-QH*256) 

QZ==QH AND 15sQZ:=Q2*16 
QY-G:!!.. and 240 ii QY---DY / 1 6 
QL==QL AND 15 
QH~QZ GR QY 
GQSl)B740 ! GOTO 1 370 

y 

H 

GOSUB 890 s SD==ABS ( I NT ( VAL ( I N* ) ) > 

G0SUB630I1 GOTO 1370 

Q0™54293! 01=54294 
FV=54295 ! PV=--54296 
V0--==1 s NU^^^^Os F'ai<E650, 128 

PM*=--" i:rvs-on:]+crv£5~off:j [RV8-dn::i-[:rvb-off;i " 

ZP*=» " [; GRBR-LEFT 11 11 CRBR LEFT 'J C CRSR-LEFT 3 C CRSR--L.EFT 1 

C CRSR-LEFT 1 1 CRSR-LEFT 11 C CRSR-LEFT ::i i: CR8R--LEFT II " 
BL*~-" " ■+■" " 
H X *= " 1 23456789ABCDEF " 
DIM S:i: (3,8) ,SM(3,S) 
M 1 = 1 ! M2=^2 : M3-3 s M4=4 

M5----5liM6^^^'.'6ilh7:::.-:7 

FL=-- 1 ! FH=2 : PL-S : Pl-I=4 

CN~5!DA^=^6sRS:==7 

CU==65520 5 RX=781 s RY=782: RP=7S3 

aj-"54271 

FOR I = 1 T03 s FOR 11 = 1 T07 

SM<]:, ii)=jj+u 

NEXT! JJ=JJ+7!iNEXT 
FOR1=54272T054296: PQKEI , 0: NEXT 
GOTO 1330 

■ 

P0KE532S0, 14! P0KE53281 , 6: PRINTCHR* (5) 

G0SUB280 

PRINTS G0SUB3 10 

FOR I=1TQ3:G0SUB360:NEXT 

PR I NT s GOBUB440 : PR I NT 

FOR I=1T03: GQSUB490: NEXT 

PRINTS GGSUB650 

PRINTBGOSUB710 

PRINTiiG0SLJB760 

PRINTrGOSUBSlO 

PRINTS G0SUB860 

RETURN 

m 

P0KE53280, 3! P0KE53281 , 7 s PRINTCHR* (149) s 

PR I NT " C HOME 11 " ; : G0SUB3420 
FOR I = 1 T03 8 G0SUB35 1 s NE X T 
G0SUB3570 
RETURN 



I=VO 



Commander January 1 983 47 



3420 


XX==20sF0FI,' I =-1703 




3430 


YY=<];-1)*7!QOSIJB200 




3440 


IFI==VDTHENPRINT" CRVS-0N3 " 5 




3450 


PRINT" <<< VCD ICE "I. 




3460 


NEXT 




3470 


Y Y=2 1 : G0SUB200 : PR I NT " < < < COMMON " 




3480 


RETURN 




3490 


! 




3500 


I=VO 




3510 


XX==0: YY= ( I-l ) *7: G0SUB200 




3520 


FOR II=M1T0M7 




3530 


HX=«SI (I, II) :G0SUB130 




3540 


PRINTSMd, II) RIGHT* (BL*<-STR*(HX) ,3) " 


*"HP* 


3550 


NEXT t RETURN 




3560 


* 




3570 


XX=0: YY--=21 ! GaSUB200 




3580 


PRINTQO; : HX=QL: 60SUB3640! PRINT 




3590 


PR I NTQ 1 -, i HX=QH : G0SUB3640 s PR I NT 




3600 


PRINTFVi! !HX=FSsG0SUB3640: PRINT 




3610 


PRINTPV; sHX=PW:G0SUB3640 




3620 


RETURN 




3630 


R 




3640 


G0SUB130 




3650 


PRINTRIGHT* <BL!tn-STR* (HX) , 3) " *"HP*i! 




3660 


RETURN 








t 
I 
i 

K 
t 
t 
t 
t 
t 

I 
I 
t 
t 
K 
II 
I 
I 
I 
t 
t 
I 
t 
t 

C 
K 
I 
% 
t 
-I 

I 

I 
I 
I 
I 
I 
K 
I 
K 
I 



POWERBYTE SOFTWAREtm 

Pr6S6nts 

APPLICATION SOFTWARE 
Business and Home 

for the 

* Commodore 64 
•Vic20andTRS80CC 

65 Applications Available including: 



THE EDITOR - Advanced Word Processor 

with Powerful Editing Features (64 & 8K Vic 20) 

THE ACCOUNTANT - General Ledger, Income 

Statement & Balance Sheet 

ACCOUNTS RECEIVABLE/PAYABLE- Create 

Journal for Current Accounts & Record of Paid Accts. 



BUSINESS INVENTORY $19.95 

ORDER TRACKER $19.95 

MY PROFIT MARGIN $16.95 

BILLING SOLVER $ 1 9.9 5 

CASH FLOW MODEL $16.95 

THE CLIENT TICKLER $19.95 

INCOME & EXPENSER $1 5.95 

BUSINESS $16.95 
APPOINTMENTS 



AT HOME INVENTORY 
CHECKBOOK BOOKY 
THE STOCK TICKER 
TAPE 

UTILITY BILL SAVER 
THE BAR CHART 
MOTHER'S RECIPES 
THE MAILMAN 
GRADE MY KIDS 



$34.95 
$29.95 
$21.95 

$12.95 
$12.95 
$16.95 

$12.95 
$8.95 
$12.95 
$12.95 
$15.95 



AND MANY, MANY MOREII 

FOR CASSETTE OR DISC ($ 10.00 Extra - 64 & Vip 20) 

•FREE CATALOG 

WITH INTRODUCTORY SPECIALS 

POWERBYTE SOFTWARE 

2CHIPLEY RUN 

WEST BERLIN, N J 08091 

(609) 346-3063 



"CARD/?" 
(CARD/PRINT) 

UNIVERSAL CENTRONICS 
PARALLEL PRINTER 
INTERFACE FOR THE VIC-20® 
Now you can use your VIC-20® with 
an EPSON MX-80 printer, or an OKI- 
DATA printer, or a TANDY printer, or 
just about anybody's printer. And you 
don't have to give up the use of your 
user port (MODEM), or change to , 
special printer commands, or load any 
special software driver programs to do | 
it. 

• Outputs standard ASCII codes to \ 
the printer. 

• Plugs in the ViC-20® printer serial 
i/o port. 

• Understands all standard VIC-20® i 
print commands. 

• No modification to your VIC-20®. , 

• No special programs required. 

• Includes all necessary cables to 
hook up a standard printer using 
Centronics parallel input. 

• MADE IN THE U.S.A. 

The -CARD/?'" is a product of CARDCO. Inc 

$79.95 

TO ORDER: 
P. O BOX 18765 
WICHITA. KS 67218 
(316) 684-4660 

Personal checks accepted 
(Allow 3 weeks) or 
COD. (Add $2.00) 
Handling charges $2 00 
VIC-20^" is a registered trademark of Commodore 



48 Commander January 1983 



Peek & Poke #7 
Mapping the Video Interface Chip (VIC) 



The VIC is a very powerful video 
controller and we will see some ex- 
cellent graphics on the 64 in the future. 
To use the VIC, we need to under- 
stand how the 64K of addressable 
memory in the 64 is seen by the VIC. 

The VIC can directly decode only 
16K of RAM/RPOM. This 16K block is 
selected by the 2 low bits of perphial 
register A of Complex Interface 
Adapter 2 (CIA2) at address 56576 
($DDOO), 



BANK BIT1 







1 



1 



1 



BITO 

1 







1 







ADDRESS RANGE 

00000-16383 

$0000-$3FFF 

16384-32767 

$4000-$7FFF 

32768-49151 

$8000-$BFFF 

49152-65535 

$COOO-$FFFF 

On power-up, both bits are set for 

decoding the low 1 6K of RAM or Bank 

0. 

The next control address is the 
Memory Control Register at address 
53272 ($D018). The high nibble sets 
the visible memory within the selected 
bank in increrpents of 1 024 ($400). On 
power-up the nibble value is 0001. 
This puts the visible memory at 1024 
of the lower 16K Bank. 

The lower nibble at the address 
(53272) contains the pointer for the 
character ROM in increments of 2048 
($0800). On power-up the nibble is 
01 Ox (two, the low bit is not used, so 
it always appears as a one). This value 
puts the character ROM at 4096 
($1000) in BankO. If the value is 01 1x, 
then the VIC is decoding the alternate 
character set at 6144 ($1800). The 
character ROM can only be decoded 
in Banks & 2. Further, if the two high 
bits are not 01 xx. then the character 
ROM will be ignored and RAM at this 
address will be decoded. 

From the above, we can see that the 
address the VIC is latched to decode 
can be different from what the pro- 
cessor is currently decoding. While the 
processor is using the basic ROMs for 
program execution, the VIC can use 
the masked RAM for a video screen 



and the character ROM can be at the 
same address that the processor is us- 
ing for BASIC RAM. 

We now have progressed far 
enough to do some interesting things 
to the general memory lap. The pro- 
gram 'PETSYM' will remap the 64 to 



a PET memory map. A PET BASIC 
program that uses peeks & pokes to 
the screen can now be loaded and run 
on the 64. A PET program that peeks 
and pokes to other locations may 
, crash and a PET program that uses 
'SYS' calls will probably be a disaster. 



100 


REM 'PETSIM' 


no 


: 


1 20 


X s^^PEEK ( 56576 ) s X - X AMD252GR 1 


130 


H 


140 


REM FROM BANK TO BANK 2 


150 


POKE 56576, X 


1 60 




1 70 


REM AD J VIDIO PAGE 


lao 


POKE 53272,4 


190 


II 


200 


REM SET TOP OF BASIC MEMORY 


210 
220 
230 


POKE 643,255 : POKE 644,, 127 


REM SET START OF BASIC MEMORY 


24Q 

n^.t"', 


POKE 641,1 : POKE 642,4 


260 


REM SET SCREEN MEMORY PAGE 


270 


POKE 648,128 s POKE 1024,0 


2 SO 


H 


290 


REM SET MEMORY LIMIT 


300 


POKE 55,255 t POKE 56,127 


310 




320 


REM SET START OF BASIC 8< POINTERS 


330 


POKE 43,1 ! POKE 44,4 s NEW 


340 


H 
M 


350 


s CHANGES VIDIO MEM FROM $0400 


360 


: TO *8000 (1024 TO 32768). 


370 


m 


380 


; SETS CHAR ROM DECODE ADDRESS 


390 


FOR BANK 2 (*8000 TO *BFFF) . 


400 


H 
H 


410 


: SETS START OF BASIC FROM $800 


420 


s TO $400 (2048 TO 1024). 


430 


s 


440 


: PROGRAM SELF-DESTRUCTS ! ! ! 


450 


tt 


460 


■ ^^ ^^ ^k ^k ^k ^k ^k ^U ^k ^k ^k ^k ^k ^k ^/ ^k ^k ^k ^k ^k ^k 
^ ^^ ^p ^p ^P ^P ^P ^P ^p ^p ^p ^p *^ ^p ^p ^p ^p ^p ^p ^p ^p ^p 


470 


: * SAVE BEFORE USING * 


480 


s JK******************** 


490 


■ 


500 


: RESTORE WILL NOT WORK PROPERLY 


510 


: AFTER RUNNING THIS PGM. 


520 


: POWER-OFF TO RESET THE C-64. 



Comman(jer January 1983 49 



Commodore Character Set vs. ASCII 



by Edwin Sund 
Tacoma, Washington 



What is ASCII? ASCII which is an 
acronym for American Standard Code 
for Information Interchange is a com- 
mon code for representing a character 



set. How is ASCII represented? Usual- 
ly it is a seven bit code (sometimes the 
eighth bit is used for reverse video). 
Broken down as follows: 



BIT VALUES 

From TO 

000 0000 000 1111 Device Control Characters 

001 0000 001 1111 Device Control Characters 

010 0000 010 1111 Punctuation and Special Characters 

Oil 0000 Oil 1111 through 9 and Special Characters 

1 00 0000 1 00 1 1 1 1 @ and A through 

101 0000 101 1111 P through Z and more Special Characters 

110 0000 110 1111 Apostrophy and Lower Case a through o 

1 1 1 0000 111 1111 Lower case p through z and more Special Characters 



fin" 




Quit Playing Games . . . 

Disk Based Software to Make Your 
Computer Get Down to Business 

Disk Data Manager— Create and manage your own data 

base. Allows you to create, add, change, delete, search, 

sort, print, etc. Up to 1200 records on a single disk. 

VIC 20. . . 59.95 CBM 64 . . .79.95 

Payroll System— Full featured, complete payroll sys- 
tem. Even prints checks. 

VIC 20. . . 89.95 CBM 64 . . . 99.95 

Mailing List— Up to 1200 records on a single disk. 

Presorts by Zip Code. Prints on stock up to four 
labels wide. 

VIC 20 . . . 44.95 CBM 64 . . . 54.95 

Inventory Package— Maintains quantity on nand, cost, 
sales price, reorder point, etc. Generates suggested 
reorder, sales report, and sales analysis. 

VIC 20. . . 79.95 CBM 64 . . .99.95 

General Ledger— up to 75 accounts! Generates Balance 
Sheet, Income Statement, Update Report, etc. 
VIC 20. . . 89.95 CBM 64 . . . 99.95 

Checkbook Manager— up to 25 expense categories. 

Tracks all outstanding checks until they are paid. 

VIC 20. . . 49.95 CBM 64 . . . 49.95 

CONTACT US FOR ALL YOUR 
DISK BASED SOFTWARE NEEDS 

Call for specifics on Hardware Configurations. 

Send Self-Addressed Stamped Envelope for 

Catalogue of Games and other Applications 

DEALER INQUIRIES WELCOME 



^ 



2905 Ports O'Call Court 
Piano, Texas 75075 

(214) 867-1333 

VISA and MASTERCARD Accepted 



(MaiterCardj 



As you can see there are eight 
groups of 16 characters for a total of 
1 28 characters. As a standard for inter- 
computer communication this is just 
great because all computers know just 
what is being received and how to 
send information back. 

With the advent of more sophisitica- 
tion in data processing graphic 
characters were invented. But, alas, no 
standardization or convention has 
been universally adopted. 

So what happened? Every com- 
puter manufacturer invented its own 
coding technique to represent its own 
graphics characters. 

Well, Commodore, not to be out- 
done by any other manufacturer, has 
invented its own character set. Not just 
once, but twice and even in the same 
computer. Two sets you say? Yep, two 
sets! One set used to represent data 
entered from the keyboard and one 
set to represent data contained in 
screen memory. 

Why was it necessary to invent a 
new code? There were now more than 
the original 128 characters which 
needed to be represented. Com- 
modore characters are built using 
eight bits instead of seven giving it the 
capability of defining up to 256 unique 
characters. Because this was not 
enough, yet another 256 characters 
were defined by envoking an alternate 
set from a poke or in the case of the 
VIC and 64 by pressing the shift- 
commodore keys. Now, in the com- 
puter at any given nano-second one 
set of 256 characters is defined for the 
keyboard and one more set of 256 
characters for the screen. Rather than 
list each group of characters the full list 
can be obtained in your reference 
book which you received with your 
computer. Let's now examine the dif- 
ference between the keyboard 
characters and the screen memory 
characters. If you don't believe there 



50 Commander January 1983 



are two sets enter this! 

Clear the screen. 

Print CHR$(65) 

Poke x,65 
x = 32768 on a PET 
x = 3680 on a VIC 
x= 1024 on a 64 
If you are in the normal character set 
you should have seen an "A" on the 
line after the print statement and a 
spade symbol in the top left corner. 

Close study of the bit representa- 
tions of the two sets will reveal the 
differences. 

Let's look at the character "A", 
Keyboard representation is 0100 0001 
= 41 HEX = 65 Decimal. Screen 
representation is 0000 0001 = 01 
HEX = 01 Decimal. As you can see 
one of the bits is different between the 
two. 

If we start counting from the left and 
count down the left most bit is bit 
number 7 and the right most bit is bit 
number 0. Bit 6 is on in the keyboard 
set and off in the screen set. Without 
belaboring this point the way screen 
characters are represented are by: 

1 . Get keyboard character 

2. Drop bit 6. 

3. Move bit 7 to bit 6. 

4. If reverse is on, put A 1 in bit 7, 
othenA/ise put A O in bit 7. 

5. Put the new character in the next 
position on the screen. 

This is what happens every time a 
print statement is executed. 

I hope the above explanation helps 
you understand how all this came 
about. Next month I will discuss how 
you can talk true ASCII from your com- 
puter to another computer or printer. 





FOR 
PET® VIC® AND 
COMMODORE 64 

Order any 6 of these programs 
for just $54.95 or any single 
program for $12.95. 



Sequencing Sam Reading Sequencing 


Gr. 1 


Sequencing Sam Reading Sequencing 


Gr.2-3 


Mr. Readwell Reading Comprehension 


Gr. 3-4 


Mr. Readwell Reading Comprehension 


Gr. 5-6 


Professor Snead Reading Comprehension 


Gr. 67 


Professor Snead Reading Comprehension 


Gr. 7-8 


Missing Numbers Counting by Fives 


Gr.2 


Math Marauders Addition Drill 


Gr.2-4 


Six Second Club Math Facts Drill +,-,x - 




Dftrhy c;nlving + - x — (4 rlig ) 


Gr. 4-6 


Maestro Musica Keyboard Identification 


Gr.3- 


WordZapper Spelling 


Gr. 5-7 


(Most programs require a 16k PET'^\ An 8k VtC® expander is required.) 


You also will receive a free catalog containing PET® 


program offers for: 




Reading Computer Literacy Metrics 


Algebra 


Vocabulary Social Studies Science 


Music 


Math Teacher Aids Health 


Spelling 


Language Chemistry Physics 





i^MONEY BACK GUARANTEE 

Package price expires after Feb. 28, 1983. 
PET® and VIC® are registered trademarks 
of Commodore Business Machines 



n 

n 



I have enclosed a check or money order for $12.95. 
Please send me the 1 program which I indicated 
for my D PET®. D VIC®. □ Commodore 64. 
I have enclosed a check or money order for $54.95. 
Please send me the 6 programs I have indicated 
for my D PET®. D VIC®, D Commodore 64. 

□ Please send me FREE information about your 
D PET®, a VIC®, and D Commodore 64 programs. 
NAME 



ADDRESS . 
CITY 



STATE . 



.ZIP. 




MICROGRAMS 



INCORPORATED 



Connmancler January 1983 51 



'"r 




PETACBM 



REVIEW: A ROM for the PET '^COMMANDER" 

by Edwin Sand 



The Commander is a toolkit like utili- 
ty rom which performs many useful 
functions which are generally not 
found in micro systems with standard 
basic. The functions can be perform- 
ed either within the program while it is 
running or as an immediate 
command. 

The functions available are: 

INSERT— Inserts lines into your pro- 
gram from another file. 

APPEND— Adds a program to the 
end of your program. 

DELETE— Deletes lines from a 
program. 

COMMON— Defines common liter- 



als/arrays to avoid deleting them by an 
insert or delete command. 

PRINTUSING— Allows a mask to be 
applied to a variable for use in format- 
ted printing. 

CONVERT-Converts PET ASCII in- 
to standard ASCII. 

FRAME— Provides information dur- 
ing long computations is. *** process- 
ing ***. 

OVERLAY— Allows program 
overlays 

ENHANCED GET-A series of 9 op- 
tions for inputting alpha/numeric or 
numeric data. 

RE-DIMENSiON-Allows redimen- 
sioning of single dim. arrays 



VIC-20* 

COMMODORE 




^«=^_1_ SOFTWARE ®__j:^y 

ADVENTURES' 

The best adventures at the 
best prices! Controlled from 
the keyboard. 

GRAVE ROBBERS' $14.95 

Introducing the firstGRAPHIC 
ADVENTURE ever available 
on the VIC-20! Explore an old 
deserted graveyard. Actually 
see the perils that lie beyond. 

ADVENTURE PACK I* 

(3 Programs) $14.95 

MOON BASE ALPHA- 
Destroy the meteor that is rac- 
ing towards your base. 
COMPUTER ADVENTURE- 
Re-live the excitement of get- 
ting your first computer. 
BIG BAD WOLF— Don't let 
the wolf gobble you up. 

ADVENTURE PACK II- 

{3 Programs) $14.95 

AFRICAN ESCAPE — Find 
your way off the continent 
after surviving a plane crash. 
HOSPITAL ADVENTURE- 
Written by a medical doctor. 
Don't check into this hospital! 
BOMB THREAT-Get back to 
town in time to warn the 
bomb squad of the bomb. 



COMMODORE 
64®* 



«y*=*' 



-#^^' 



TREASURES OF 

THE BAT CAVE $14.95 

Explore the ancient caves 
filled with treasures and 
guarded by deadly vampire 
bats. The realistic 3-D .dis- 
play brings out your claus- 
trophobia. Machine code 
for fast action: keyboard or 
joystick. Over exlO^*^ dif- 
ferent caves to explore! 

ENCODER $14.95 

Use your VIC to keep prying 
eyes away from your per- 
sonal matters. Encoder uses 
your password to scramble 
whatever you store in the 
computer: bank account 
numbers, household inven- 
tory, where you hid the 
jewelry. The scrambled data 
can be saved, or retrieved 
from tape. A 90 minute tape 
holds approximately 120 dou- 
ble spaced typed sheets. 
Keep a copy in your safety 
deposit box. 
'ONLY ADVENTURES ARE AVAILABLE FOR THE COMMODORE 64 



ANNIHILATOR $19.95 

Protect your planet against 
hostile aliens in this 
defender-like game. All 
machine code for fast ar- 
cade action. Joystick 
required. 

KONGO KONG $19.95 

Climb ladders: avoid barrels 
the crazy ape is rolling at 
you. Rescue the damsel. Par- 
tially machine code for 
smooth, fast action. Key- 
board or joystick. 

Send for free catalog 

All programs fit in the standard 

VIC meitiory. and come on 

cassette tape. 

Ordering— Please add $1.50 

postage & handling per order. 

PA residents add 6% sales tax. 

Foreign orders must be drawn 

in U.S. funds or use 

credit card. 

Credit card users— include 

number and expiration date. 

VICTORY SOFTWARE CORP. 

2027-A S.J. RUSSELL CIRCLE 

ELKINSPARK, PA 19117 

(215) 576-5625 



RETURN CLEAR-Clears all 
gosubs and for . . . next routines from 
the system stack and continues execu- 
tion at any desired location in the 
program. 

COMPUTED GOTO-Allows a goto 
based upon a computed variable. 

WINDOW— Clears a "window" of 
lines-columns on the screen. 

MAT PR! NT#— Speed write to a disk 
file from an array. 

MAT INPUT#— Speed read of a disk 
file into an array. 

MAT INIT— Initializes array to " " or 
zero. 

MAT ZER— Initializes array from 
specified starting point. 

STRING— Inputs a string form disk 
(includes commas, etc.) 

This rom requires a 4.0 pet and uses 
no additional memory to function. I 
have been using the COMMANDER 
for about a month now and feel very 
comfortable with it. However, at first, 
I was a bit confused. The problem was 
that I didn't use the demo disk provid- 
ed which demonstrates all the uses of 
the commands. Additionally I was us- 
ed to the TOOLKIT which uses key- 
words to perform the commands while 
COMMANDER uses sys statements to 
invoke the functions. SYS statements 
may sound confusing to use but once 
you have used the more commonly 
used functions the numbers are easy 
to remember. One benefit of using 
SYS statements over key-words like 
"append" is that if you use another 
utility rom the two roms won't fight over 
control of the system. There is no star- 
ting SYS statement to get COM- 
MANDER to run. All in all I am very 
pleased with the added functionality 
and ease of developing COM- 
MANDER based software. One final 
note, with a name like COMMANDER 
how could you go wrong! 



52 Commander January 1983 



TYPE-SHARE TYPESETTING 

EDUCATIONAL SPECIALISTS 

SILICON OFFICE SPECIALISTS 



ONE STOP CENTER 
for 



'?oo7 



SOUTHERN CALIFORNIA 

MAINTENANCE CENTER 

FOR COMMODORE EQUIPMENT 



Qs. commodore 



VIC-VILLE '" SOFTWARE 

division of Data Equipment Supply Corporation 



BOSS (c) by Kavan Software 



Exclusive distributors of 
Kavan Software 



iigi^gi 


2 


5pB_pi__pi__H 




4n_BB_bB_bB__ 




-^pN__pM__pN_^ 




i^^ra^aSra 




IRI B r C 1 D lEl F 16 


IH" 




- &2 . ±^ 



2O00 



e . ee . ©e 



The Definitive Chess Game 
for the VIC'20 

* 10 Levels of Play 
-A- Beats Sargon II 

* Two Clocks 

tir Wide range of opening moves 

* En passant, queening, castling 

Tir Change screen and bbard colors 

* Cassette 

-A- Requires 8K minimum expansion 

* 100% machine language 

$39.95 




BONZO (c) by Kavan 



HOPPER 



PIT (c) by Kavan 



Commodoro 64 YAHTZEE 






JJittr '"^far 




■ 1 ■■ I ^^1 I I ^^^^^^^ * \f tf 



One of the most popular games in 
Europe. You control BONZO as he climbs 
the ladders and picks up the'point blocks. 
Watch out for. the alien guards. 100% 
machine language, cassette based. 
Joystick or keyboard, mintmum 8k ex- 
pansion. t20.00 



" • 



Avoid the cars, dragsters, buildings, logs 
and other obstacles to bring the frog 
safely home. Machine language for fast 
and smooth arcade action. Joystick, stan- 
dard VIC. $20.0d 




BONZO strikes again as he lakes n^oney 
bags out of the pit. Avoid the alien rain by 
standing under the shields. Every succes- 
sfully removed bag of money reinforces 
your sheilds. 100% machine language, 
cassette based. Joystick or keyboard, 
standard ViC. $1».00 



Comnrtodore 64 version of the famous 
dice game. 10 player capacity. Watch 
dice roll across the screen. Automatic 
tabulation of score and bonuses. Sprite 
graphics and sound. Cassette based. 

S20.00 



Night Crawtor $25.00 

by in t w — tl ug Softwara 

Shoot down centipedes, spiders, mushrooms and all 
kinds of bugs before they get you. Machine language 
arcade action on standard ViC with Joystick. 

TTie Black Castle $20.00 

Adventure, travel the countryside, fight demons, buy 
goods, storm the castle. Requires 3K or more expan- 
siori. 

A Maze log $12.00 

Travel through the maze. Game of skill and tense ac- 
tion. Standard VIC. 

Qobbtor $11.00 

Sounds easy? You have 25 seconds to get him and 
the time gets shorter at each higher level. Standard 
VIC. 

Hang U $12.00 

Traditional Hangman plays against the VlC's 250 
WQrd dictionary or another person. Standard VIC. 

Coggle $11.00 

Computerized version of Boggle. Standard ViC. 

Qotd Brick $14.00 

Many levels of play, sound, and color. 

Complete descriptive catalog $2.00 



3-0 Labyrinth $144N) 

Escape from the labyrinth. Shown in 3- D perspective 

view with randomly generated mazes. Standard VIC. 
Air Strike $11.00 

Fly the new super bomber V-20 on a mission. Stan- 
dard VIC. 
Attack on Silo III $12^ 

You are the commander of Silo Ml. Defend your 

country. Standard VIC. 
BaMtoaH Stratagy $12.00 

The excitement of baseball as a video strategic 

game. Standard Vic. 
Vic Pokm $14.00 

Play poker against the VIC. Hi-res graphics and 

sound. Standard VIC. 
Frogger by (c) Kavan $14JN) 

Eat the flies and avoid the car. Standard VIC 
Space POraaka $48J>0 

by Inter eating Software 

Pilot the spaceship "Infinity" and fight the "Space 

Phreeks". 15 different attack patterns, 33 levels. 

Machlrte language, arcade quality. Standard VIC, 

joystick. 

Dealers Welcome - Authors Wanted I 



rt $25.00 

Keep mailing list, print reports, labels. 8k expansion 

or 16k expansion required. 
Aalro-Mlnara $17.00 

Hi-res graphics and sound space game. Requires 3k 

or 8k expansion. 
Panxar Attack $14.00 

Enemy tanks are attacking and you must destroy 

them. Ht-res graphics. Standard VIC. 
Paaaatrlan Polo $14.00 

Drive your car thru the streets. Based upon Death 

Race. Sundard viC. 
YahtzM $12,00 

Solitaire version of This famous dice game. Standard 

VIC. 
Commodore M Software AvallalMa Now II 

•4 Monopoly from AP Software 

S4 MaHIng Uat from VIC-VlLLE" Software 

•4 Hnanoo from VIC-VlLLE* Software 

•4 Time Mianagar 2.0 from TOTL Software 

Look for more 64 Software from VIC-VILLE" & get oh our 
mailing list for all 64 updates and users' group. 

Add $3.00 for shipping & handling 



Network your CBM, VIC and COMMODORE $4 with the PET SWITCH and VIC SWITCH from DATATRONICS. 

Distributors for Datatronic AB 



(714) 
778-5455 



Data Equipment Supply Corp. (213) 

8315 Firestone Blvd., Downey, CA 90241 923-9361 



Commander January 1983 53 



'1.. 



Given here, in zip code order, is a 
partial list of the Charter Dealers who 
will be carrying the COMMANDER. 
We will provide updates for this list in 
following issues as a service to provide 
our readers with a local source at 
which they will find information, hard- 
ware, or software for their Commodore 
Computers. 

U.S.A. 

Rhode Island 

International Computer Services 
165 Oyerville Ave. 
Johnston, Rl 02919 
(401) 273-1001 
Manager-Owner; Steve Lablanc 

New Hampshire 

Compucraft, Inc. 
17 Dunbar St. 
Keene, NH 03431 
(603) 357-3901 
Manager-Owner: Richard Bishop 

Echo Consulting Services 
P.O. Box 1199 
Conway, NH 03818 
(603) 447-5455 
Manager-Owner: George Epotien 

Maine 

Maine Micro Systems, Inc. 
55 Center St. 
Auburn, ME 04210 
(207) 786-0696 
Manager: Nancy Lecompte 

Vermont 

Computeam 

205 Dorse St. 

S. Burlington, VT 05401 

(802) 862-2802 

Manager-Owner: Mark Robinson 

New Jersey 

Computer Workshop 
1200 Haddenfield Rd. 
Cherry Hill, NJ 07013 
(609) 665-4404 

Manager-Owner: Charles Kolbe 
54 Commander January 1983 



Computerability, Inc. 

441 Route 23 

Pomton Plains, NJ 07444 

(201) 835-0688 

Manager-Owner: Dennis Mull 

Software City 

147 N. Kinder Ramark Rd. 

Montvale, NH 07645 

(201) 391-0931 

Manager-Owner: CM. Hatfield 

BB/The Computer Store 
216 Scotch Rd. 
Trenton, NH 08628 
(609)883-2050 
Manager-Owner: Barry Brown 

New York 

B.C. Communications, Inc. 
World Wide Electronics Dist. 
207 Depot Rd. 
Huntington St., NY 11746 
(516) 549-8833 

Durmac Cash Registers 

1628 Erie Blvd. E. 

Syracuse, NY 13210 

(315) 472-4531 

Manager-Owner: William McCarthy 

Personal Computers, Inc. 
3251 Bailey Ave. 
Buffalo, NY 14215 

(716) 832-8800 
Manager-Owner: Frank C. Smeirciak 

Pennsylvania 

One Stop Computer Shope 
65 N. 5th St. 
Lemoyne, PA 17043 

(717) 761-6754 
Manager-Owner: Joanne Wright 

Micro Age Computer Store 
1352 Tilghman St. 
Allentown, PA 18102 
(215) 434-4301 
Manager-Owner: Ed Eichenwald 



Maryland 

Professional Micro Service 
100 W. 22nd St. 
Balto, MD 21218 
(301) 366-0010 
Manager-Owner: James A. Breen 

Tri-State Computers 
1504 S. Salisbury Blvd. 
Salisbury, MD 21801 
Manager-Owner: Tom Weiland 

Virginia 

Virginal Micro Systems 
13646 Jeff Davis Highway 
Woodbridge, VA 22191 
(703)491-6502 
Manager-Owner: Shelli 

West Virginia 

Computer Associates, Inc. 
113 Hale St. 
Charleston, WV 25301 
(304) 344-8801 
Manager-Owner: Jeff Knapp 

North Carolina 

The Program Center 

3400A W. Wendover Ave. 

Greensboro, NC 27402 

(919) 855-8667 

Manager-Owner: Rupert Fenequito 

Bob West Computers 
54 West Main St. 
Brevard, NC 28712 
(704)883-2595 
Manager-Owner: Sylvia West 

Florida 

COMPUTECH 
1415 Timberlane Rd. 
Tallahassee, FL 32312 
(904) 893-1743 
Manager-Owner: Dan Evans 

Random Access Computers 
296 Nelgin Parkway 
Ft. Walton Beach, FL 32548 
(904) 862-7763 
Manager-Owner: Joanne Dodd 



Commander Dealers 



Florida Book Store 
1614 West University Ave. 
Gainesville, FL 32604 
(904) 376-6066 

Osceola Computer 

1300 Dakota Ave. 

St. Cloud, FL 32769 

(305) 892-1501 

Manager-Owner: Raymond Barrieau 

Computer Specialties, Inc. 

701 E. Lincoln Ave., P.O. Box 1718 

Melbourne, FL 32901 

(305) 725-6574 

Manager-Owner: Otis P. Lutz 

Focus Scientific 
224 N. Federal Highway 
Fort Lauderdale, FL 33301 
(305) 462-1010 
Manager-Owner: M. Rienhardt 

The Software Connection 
5460 N. State Rd. 7, Suite 108 
Ft. Lauderdale, FL 33319 

Alabama 

Tricelin Corporation 
Route 1, Box 128 
Bankston, AL 35542 
(205) 689-4999 

Tennesee 

Metro Computer Ctr. 

P.O. Box 1406 

Chattanooga, TN 37401 

(615) 875-6676 

Manager-Owner: Wayne F. Wilson 

Mississippi 

Sunrise Persons Supplies 
P.O. Box 38341 
Corinth, MS 38834 
(601) 287-4721 
Manager-Owner: Felex Gathings 

Kentucky 

All Business Computers 
Suite C-2317 Versailles Rd. 
Lexington, KY 40504 
(606) 253-2545 
Manager-Owner: Bud Wilson 



Stowehuewge Computer, Inc. 
2026-29th St. 
Ashland, KY 41101 
(606) 359-0545 

Ohio 

Office Mart, Inc. 
11151 East Main St. 
Lancaster. OH 43130 
(614) 687-1707 

The Computer Store of Toledo, Inc. 

18 Hillwyck Dr. 

Toledo, OH 43615 

(419) 535-1541 

Manager-Owner: Al and Jackie Miller 

Computer Showcase 

5855 Youngston-Warren Rd. SE 

Niles, OH 44446 

(216) 652-2571 

Waltz Photo 
438 Sixth St. 
Canton. OH 44701 
(216) 455-9421 

Wards Computers, Inc. 
868 Ohio Pike 
Cincinnati, OH 45245 
(513) 752-2882 
Manager-Owner: Carl Ward 

Indiana 

Alen's Jewelry & Loan Co. 
130 E. 10th St. 
Anderson, IN 46016 
(317) 642-7978 
Manager: Jerry Rubenstein 

AVC Corporation 
2702 Applegate 
Indianapolis, IN 46203 
Manager-Owner: Brent Enderle 

A Computer Store 
2140 N. Mithoefor Rd. 
Indianpolis, IN 46229 
(317) 898-0331 
Manager-Owner: Skip Robbins 

Computer People 
900 Highway 212 
Michigan City. IN 46360 
(219) 879-8557 
Manager-Owner: Harry Hopkins 



Computer Corner 
6722 E. State Blvd. 
Fort Wayne, IN 46815 
(219) 749-8338 
Manager-Owner: Tom Kutina 

Custom Software 
3197 South 3rd Place 
Terre Haute, IN 47802 
(812) 234-3242 
Manager-Owner: Vicki McEntaffer 

Michigan 

Comm Data 
320 Summit 
Milford. Ml 48042 
(313) 685-0113 

Roseville Computer 
25929 Gratiot 
Roseville, Ml 48066 
(313) 772-0760 
Manager-Owner: Tom Potter 

Haney's Stereo, Inc. 
15270 Gratiot 
Detroit, Ml 48205 
(515) 752-8845 
Manager-Owner: Paul M. Paul 

Computer Mart 
915 S. Dort Hwy. 
Flint, Ml 48503 
(313) 234-0161 
Manager-Owner: Pat McCollem 

Computers and More 

2915 Dretom 

Grand Rapids, Ml 49508 

Computer Tutor 

502 E. Front 

Traverse City, Ml 49684 

(616) 941-5320 

Manager-Owner: Caroline Garrick 

Iowa 

Micro Computer Applications 
111 E. Church St. 
Marshalltown, lA 50158 
(515) 752-8845 

Manager-Owner: Harold Montover 
Commander January 1983 55 



Wisconsin 

Majic Business Systems 

3519 W. Wanda Ave. 

Milw, Wl 53221 

(414) 282-8072 

Manager-Owner: Dennis Woitekaitis 

Computerland of Madison 
6625 Odana Rd. 
Madison, Wl 53719 
(608) 833-8900 
Manager-Owner; James Sullivan 

South Dakota 

Computerland Rapid City 
738 St. John St. 
Rapid City, SD 57701 
(605) 348-5384 
Manager-Owner: John Mattson 

Illinois 

The Software Store, Inc. 
1767 Glenview Rd. 
Glenview, IL 60025 
(312)724-7730 

Digital World 

711 Army Trail Rd. 

Addison, IL 60101 

(312) 628-9222 

Manager-Owner: Sam Gunda 

B-A Computer Sys. 
2 N. Batavia Ave. 
Batavia, IL 60510 
(312) 879-2350 
Manager-Owner; Robert Appel 

Rozel Industries, Inc. 
7360 N. Lincoln Ave. 
Lincolnwood, IL 60646 
(312) 675-8960 
Manager-Owner: Fred Whitlock 

Fischer Scientific 

4901 W. Lemoyne Ave. 

Chicago, IL 60651 

(312) 378-7770 

Manager-Owner: A.C. Heidrich 

Kappel's Computer Store 
125 E. Main 
Belleville, IL 62220 
(618) 277-2354 
Manager-Owner: Tom Kappel 

Data Plus, Inc. 
1706 Broadway 
Quincy, IL 62301 
(217) 222-65602 
Manager-Owner: James Moore 

56 Commander January 1983 



Missouri 

Common Wealth Computers 

5214 Blue Ridge Blvd. 

Kansas City, MO 64133 

(816) 356-6502 

Manager-Owner: Dick York 

Kansas 

Computer Business Machines 

Officenter 357 S. Lulu 

Wichita, KS 67211 

(316) 267-1150 

Manager-Owner: Mrs. R. Santoscoy 

Nebraska 

Central Office Equipment 
2020 Central Ave. 
Kearney, NE 68847 
(308) 234-2515 
Manager-Owner: Byron Hanse 

Texas 

Computer Home 
431 East Ave. C. 
San Angelo, TX 76903 
(915) 653-7488 
Manager-Owner: Brent DeMoville 

Tex-Tech 

3115 W. Loops., #26 
Houston, TX 77027 
(713) 965-9977 
Manager-Owner: Phil Ray 

Computerland of Amarillo 

2300 Bell St. 

Amarillo, TX 79106 

(806) 353-7482 

Manager-Owner; Mark Trowbridge 

Whole Life Distributors 

965 Washington, #6 

El Paso, TX 80203 

(303) 861-2825 

Manager-Owner: Tom Tarbart 

Idaho 

Electronic Specialties, Inc. 

841 1 Fairview Ave. 

Boise, ID 83704 

(208) 376-5040 

Manager-Owner: Terry Romero 

Colorado 

Zero Page, Inc. 

2380 Naegele Rd. 

Colorado Springs, CO 80904 

(303) 633-0211 

Manager-Owner: David C. Cooper 

Utah 

Mnemonics Memory Systems 

(DBA Mnemonics Computer Store) 

141 E. 200 South 

Salt Lake City, UT 84111 

(801) 266-7883 

Manager: Rick Giolas 



Arizona 

Personal Computer Place 
1840 W. Southern Ave. 
Mesa, AZ 85202 
(602) 833-8949 
Manager-Owner: Roger Smith 

Nevada 

PCS Computer 
3900 W. Charleston, Ste R 
Las Vegas, NV 89102 
(702) 870-4138 
Manager-Owner: Mickey Cole 

California 

Opamp Tech Books 
1033 N. Sycamore 
Los Angeles, CA 90038 
(213) 464-4322 
Manager-Owner; Alicon 

Data Equipment Supply Corp. 
8315 Firestone Blvd. 
Downey, CA 90241 
(213) 923-9361 
Manager: Robert Johnson 

Computer Palce 
23914 Crenshaw Blvd. 
Torrance, CA 90505 
(213) 325-4754 
Manager-Owner: Wen T. Huang 

Fyrst Byte 

10053 Whittwood Dr. 

Whittier, CA 90603 

(213) 947-9411 

Manager-Owner: Darrell Miller 

HW Electronics 
19511 Business Center Dr. 
North Ridge, CA 91324 
Manager-Owner: Ronda 

Data Systems West 
421 West Las Tunas Dr. 
San Gabriel, CA 91776 
(213) 289-3791 
Owner: Frank J. Mogavero 

Consumer Computers 
8314 Parkway Dr. 
La Mesa, CA 92041 
(714) 465-8888 
Manager: Steve Scott 

Caico Digital Equpiment Inc. 

1919 Aple St. 

Oceanside, CA 92054 

(714) 433-4119 

Vice President: Ronald N. Paperno 

Quality Computer Center 
801 S. Victona St., #104 
Ventura, CA 93003 
(805) 642-1979 
Manager-Owner: David Stewart 



Micropacific Computer Center 
5148 N. Palm 
Fresno, CA 93704 
(209) 229-0101 

J. Snell & Co.. Inc. 

657 Mission St. 

San Francisco, CA 94105 

(415) 421-5898 

Manager-Owner: James Snell 

PC Computers 
10166 San Pablo Ave. 
El Cerrito. CA 94503 
(415) 527-6044 
Manager-Owner: Gary Guttebo 

The Computer Room 
230 Mt. Herman Rd. 
Scotts Valley, CA 95066 
(408) 438-5001 
Manager-Owner: Gary Guttebo 

The Computer Center Stores 
930 Town & Country Village 
San Jose, CA 95128 
(408) 246-5710 

Inland Elestro Mart 
8624 California Dr. 
Riverside. CA 95204 
(714) 687-3776 
Manager-Owner: Jack 

The Radio Place 
2964 Freeport Bl. 
Sacramento. CA 95818 
(916) 441-7388 
Manager-Owner: Gary Stilwell 

Ray Morgan Co. 
554 Rio Undo Ave. 
Chico, CA 95926 
(916) 343-6065 
Manager: Dave Wegner 

Computer Place 
1698 Market St. 
Redding, CA 96001 
(916) 22M312 
Manager-Owner: John Fredricks 

Oregon 

SW Computers 
1125 N.E. 82nd 
Portland, OR 97220 
Manager-Owner: Jerry 

Edu-Tech 

1575 N.W. 9th 

Corvallis. OR 97330 

(503) 758-5577 

Manager-Owner: L Clark/W. Brown 



Washington 

Computer Town 
1215 Center 
Tacoma, WA 98409 
(206) 272-2271 

Computer Corner 
1610 N. LaVenture 
Mt. Vernon, WA 98273 
(206) 428-1840 
Owner: Kirk D. Shroyer 

Conti Electronics Ltd 

Cy20 Afcon 

140-1 4th 

Blaine, WA 98230 

Manager-Owner: G.W. Harder 

Alaska 

BG Systems Co. 

204 East International 

Anchorage, AK 99502 

(907) 276-2986 

Manager-Owner: Robert DeLoach 

Micro Age Computer Store 
2440 Seward Highway 
Anchorage, AK 99503 
(907) 279-6688 
Manager-Owner: Jay Wisthoff 



CANADA 
Ontario 

Electronics 2001 
5529 Yonger Street 
Willowdale, Ontano M2N 5S3 
Manager-Owner: Chris Bennett 

House of Computers 
368 Eglinton Ave. W. 
Toronto, ON M5N 1A2 
(416) 482-4336 

Manager-Owner: Mark Herzog 
The Computer Circuit Ltd. 
733 Richmond Street 
London, Ontano N68 3H2 

Quebec 

Systems Ornic Ltd 

999 deBouragogue 

Sinte Foy, Quebec G1W 4S6 

Manager-Owner: Yvon Labbee 

Caleq Inc. 

331 Sir Walter Lourier Blvd. 

St. Lambert, Quebec J4R 2L1 

Manager-Owner: Marcel Bourcier 

Alberta 

Kelley Software Dist. Ltd 
P.O. Box 11932 
Edmonton, Alberta T5J 3L1 
Manager-Owner: Robert Owen 



\ 



VIC 20/PET/CBM OWNERS 



WALLBANGER - Blast your way through the dodge'm, blasfm. 
and attack modes. If you destroy the bouncing balls before they destroy 
you, the walls close in for the next round. WALLBANGER is written in 
machine language, has great sound, and encourages complex strategies. 

CASS/5KA/IC ZO/CBM 803Z 

CASS/8K/40 COL SCREEN/OLD-NEW ROMS/FAT FORTY S15.00 

(CALIF. RES. ADD 6% SALES TAX] 

IVIILLIPEDE - Exterminate the oncoming millipedes and fleas as 
they descend through the mushroom patch. Blast giant bouncing spiders 
before they pounce on you. Shoot a millipede in the body and suddenly two 
millipedes descend toward your ship. MILLIPEDE is written in machine 
language, has excellent graphics, and great sound. 

CASS/5K/VIC 20/CBM 803Z 

CASS/8K/40 COL SCREEN/OLD-NEW ROMS/FAT FORTY $15.00 

[CALIF. RES. ADD B% SALES TAX) 

ROAuTOAU - Hop your toad across 5 lanes of traffic, avoid 
deadly snakes, and dodge the dreaded toad-eaters. Cross a raging river 
full of logs, turtles, alligators, and park your toad in the safety of a harbor. 
Each time you park 5 toads, you enter a tougher level where the action is 
faster and the toad-eaters are more numerous. ROADTOAD is written in 
machine language and uses high resolution graphics. The sound effects are 
excellent and you can use a joystick or the keyboard to control your toad. 

CASS/5K/VIC zo $15.00 

(CALIF. RES. ADD 6% SALES TAX] 

Write for FREE game details: 

NIBBLES Si BITS, INC. 

P.O. BOX 2044 

ORCUTT, CA 93455 



VIC 20/PET/CBM OWNERS 



Commander January 1983 57 



Game- CONTEST 



Due to the newness of our magazine we are rerunning our game contest featured 
in our December Premier Issue. Next month we will have a new game contest. 

The Editor 



f 




Escape MCP'" 

Introduced in late summer of this 
year by Comm*Data Computer 
House Inc., ESCAPE utilizes the full 
capacity of the VIC-20. Written in full 
machine code, requiring noadditional 
memory and distributed on tape with 
a joystick option, ESCAPE MCP offers 
a simple challenge with no simple 
solution. In the program you have 
been de-atomized and teleported into 
the logic circuits of your computer. 
With you is the sinister MAIN 
CONTROL PROGRAM which wants 
to capture and destroy you. As you 
make your escape through the 
circuits, you discover that MCP 
chases after you, right through the 
walls! Try and try again as MCP taunts 
you with music and unbelieveable 
changing circuits. But you'll make it. 
After all you have speed and 
intelligence on your side! Besides 
your pursuer is Evil but still only a 
program. Make it through nine levels 
of logic and ESCAPE MCP. $14.95 



The Game Contest is a continuing feature of 
Commander magazine aimed at providing 
entertainment for and promoting competition among 
our readers. 

Tine Comm-Data company lias graciously provided 
us with a great game and some super prizes for our 
Premier Contest. 

Don't be the last one on your block to buy Escape 
MCP and beat the maze. 

DEADLINE FOR ENTRIES: 1 MARCH 1983 

Escape MCP may be purchased from COMM-DATA 
or anyone of its fine dealers. 

P.O. Box 325 

Milford, Michigan 48042 

1-313-685-0113 

58 Commander January 1983 



Terms for the 
Premier Issue Contest 

First prize will be awarded to the 
first person who successfully passes 
through all nine levels of Escape 
MCP. The winning entry must contain 
a photograph of the final screen of the 
game, an Escape MCP package front, 
proof of purchase slip and the correct 
name of the final tune played. 

Entries must be mailed to 
COMMANDER , Escape Contest, 
P.O.Box 98827, Tacoma, Washington 
98498. All entries must be mailed, as 
postmarks are required to determine 
the earliest winning entry. In the event 
of a tie duplicate prizes will be 
awarded. Employees of Comm*Data 
and their families may not participate. 
First prize will consist of Comm*Data 
VIC-20 Software, valued at $200.00. 
Second prize will consist of 
Comm*Data VIC-20'Software, valued 
at $1 00.00. Third prize will consist of 
Comm*Data VIC-20 Software, valued 
at $50.00. 

The contest will run until a first prize 
is awarded. Comm*Data will notify 
Commander Magazine of the 
winner(s) and provide copy and 
photographs for a follow-up story. 



Hints from the 
Commander 

Zenith televisions and VIC's can be 
made compatible by typing in " POKE 
3684, 133 " and pressing return. 
Zenith owners who wish to run 
Comm*Data's software must type in 
the poke over the " 3583 BYTES 
FREE" line that appears when theVIC 
is first turned on. The screen should 
look like this: 
****CBM BASIC V2**** 
POKE 3684, 133 
READY 
LOAD 




SUBSCRIBE TO 

^ Gommanaer 

Now, and take advantage of our Charter Subscriber Discount of $4 OFF 

THE MONTHLY JOURNAL FOR 

COMMODORE 

COMPUTER USERS 

64 

"COMMANDER will be dedicated to communicating the fun of, as well as the 
latest information about the COMMODORE COMPUTERS/' 

EACH MONTH COMMANDER WILL HAVE: 

• the latest information and news releases 

• software for education, business and fun 

• reviews on hardware and software 

• program listings 

• application (how-to) articles 

• a contest and MUCH, MUCH MORE!! 

DONT MISS OUT 

on the most informative magazine dedicated to the 

COMMODORE COMPUTERS 

HAVE YOU GOT WHAT IT TAKES TO BE A 

Gommanaer? 

Commander January 1983 59 



>4dKei1ising Index 



Academy Software 2 

Cascade Computerware 39 

Comm Data Software 3 

Compu-sense 5,10,18,40,48 

Computer Mat 35 

Data Equipment 53 

Eastern House 8 

Electric Company 39 

Electronic Specialties, Inc 10 

French Silk 11 

Leading Edge Back Cover 

Midwest Micro Inside Front Cover 

Micro-Ed 31 

Micro Spec 50 

Micrograms 51 

Nibbles & Bits, Inc 57 

Optimized Data Systems 22 

Luna Software Inside Back Cover 

Tamarack Software 29 

Tsasa, Inc 48 

Victory Software 52 



60 Commander January 1983 



Sffl 



SOFTWARE 



LUNA SOFTWARE is quickly becoming one of 
the largest manufacturers of software for the 
Commodore 64™ and Vic 20''' . The reason 
behind our growth is that we offer the consumer 
only the best in quality, service and price. 
We have now available for immediate delivery a 
diverse line of software — ranging from 
business programs to arcade style games. 
Call us today and shoot for the stars with LUNA. 



DISKEHES & CASSETTES FOR THE 
COMMODORE 64^' AND VIC 20" 




^Vt''HA^r 




•NEVER^ 



MORE THAN JUSTMnnra HEm HHX. 



Says who? Says ANSI. 

Specifically, subcommittee X3B8 of the American 
National Standards Institute (ANSI) says so. The fact 
is all Elephant^^ floppies meet or exceed the specs 
required to meet or exceed all their standards. 

But just who is "subcommittee X3B8" to issue such 
pronouncements? 

They're a group of people representing a large^ 
well-balanced cross section of disciplines— from 
academia, government agencies, and the computer 
industry. People from places like IBM, Hewlett-Packard, 
3M, Lawrence Livermore Labs, The U.S. Department 
of Defense, Honeywell and The Association of Com- 
puter Programmers and Analysts. In short, its a bunch 
of high-coliber nitpickers whose mission, it seems, in 
order to make better disks for consumers, is also to 



make life miserable for everyone in the disk-making 
business. 

How? By gathering together periodically (often, 
one suspects, under the full moon) to concoct more 
and more rules to increase the quality of flexible 
disks. Their most recent rule book runs over 20 single- 
spaced pages— listing, and insisting upon— hundreds 
upon hundreds of standards a disk must meet in 
order to be blessed by ANSI. (And thereby be taken 
seriously by people who take disks seriously.) 

In fact, if you d like a copy of this fomnidable docu- 
ment, for free, just let us know and we'll send you 
one. Because once you know what it takes to make 
an Elephant for ANSI . . . 

We think you'll want us to make some Elephants 
for you. 



ELEPHANl HEUYDUTYDBKS. 

For a free poster-size portrait of our powerful pachydenm, please write us. 

Distributed Exclusively by Leading Edge Products, Inc., 225 Turnpike Street, Canton, Massachusetts 02021 

Coll: toll-free 1-800-343-6833; or in Massachusetts call collect (617) 828-8150. Telex 951-624.